您的位置:首页 > 其它

判断一个字符串是否在另一个字符串中:O(m+n)

2012-10-07 15:35 381 查看

public class TestSubStr {

public static void main(String[] args) {
String str1 = "abcdefghijklmn";
String str2 = "hca";
//开辟一个辅助数组,并初始化为0
int[] hash = new int[26];
//num为辅助数组中元素个数
int num = 0;
//扫描短字符串
for(int i=0; i<str2.length(); i++){
//将字符转换成辅助数组中的索引
int index = str2.toCharArray()[i] - 'a';
//如果辅助数组中该索引对应元素为0
if(hash[index]==0){
hash[index] = 1;
num++;
}
}
//扫描长字符串
for(int i=0; i<str1.length(); i++){
int index = str1.toCharArray()[i] - 'a';
if(hash[index]==1){
hash[index] = 0;
num--;
if(num==0)
break;
}
}
if(num==0)
System.out.println("包含");
else
System.out.println("不包含");
}

}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: