本人电子系,只为一学生。心喜计算机,小编以怡情。
smallfish_love的博客
这位大神写的很详细!!!建议看这位大神的说明!!!
//我的代码
public boolean isInterleave(String s1, String s2, String s3) {
// write your code here
int s1len=s1.length();
int s2len=s2.length();
int s3len=s3.length();
if(s1len==0)
{
if(s2.equals(s3)) return true;
else {
return false;
}
}
if(s2len==0)
{
if(s1.equals(s3)) return true;
else return false;
}
int visited[][]=new int[s1len+1][s2len+1];
visited[0][0]=1;
for(int i=0;i<s1len;i++)
{
if(s1.charAt(i)==s3.charAt(i))
visited[i+1][0]=1;
else break;
}
for(int j=0;j<s2len;j++)
{
if(s2.charAt(j)==s3.charAt(j))
visited[0][j+1]=1;
else break;
}
for(int i=1;i<visited.length;i++)
for(int j=1;j<visited[0].length;j++)
{
int hang=i-1;
int lie=j-1;
if((visited[i][j-1]==1&&s2.charAt(lie)==s3.charAt(hang+lie+1))||(visited[i-1][j]==1&&s1.charAt(hang)==s3.charAt(hang+lie+1)))
visited[i][j]=1;
}
if(visited[visited.length-1][visited[0].length-1]==1)
return true;
return false;
}