- Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathInterleaveString.java
More file actions
Latest commit
26 lines (23 loc) · 1.09 KB
/
Copy pathInterleaveString.java
File metadata and controls
26 lines (23 loc) · 1.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
publicclassSolution {
publicbooleanisInterleave(Strings1, Strings2, Strings3) {
// Start typing your Java solution below
// DO NOT write main() function
if (s1.length() + s2.length() != s3.length()) returnfalse;
boolean [][] isInter = newboolean[s1.length() + 1][s2.length() + 1];
for (inti = 0; i <= s1.length(); i++) {
for (intj = 0; j <= s2.length(); j++) {
if ( i == 0 && j == 0 ) {
isInter[0][0] = true;
} elseif (i == 0) {
isInter[i][j] = isInter[i][j - 1] && s2.charAt(j - 1) == s3.charAt(i + j - 1);
} elseif (j == 0) {
isInter[i][j] = isInter[i-1][j] && s1.charAt(i - 1) == s3.charAt(i + j - 1);
} else {
isInter[i][j] = ( isInter[i][j - 1] && s2.charAt(j - 1) == s3.charAt(i + j - 1) ) ||
( isInter[i-1][j] && s1.charAt(i - 1) == s3.charAt(i + j - 1) );
}
}
}
returnisInter[s1.length()][s2.length()];
}
}