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

来源:互联网 发布:php换行代码br不生效 编辑:程序博客网 时间:2024/05/16 01:40

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