这个题目拿到时产生了两个思路:
1.思路一将s2的所有情况全部组合出来,然后逐个和S1进行indexOf比对
2.思路二将S1和S2都拆成字符串数组,然后,不顾虑出现顺序,判断是否连续出现S2中的字符既可以(注意S2出现过的在连续判断的时候需要去除才能进行下一次判断)
由于第一个思路要组合出所有结果,当时没有想到比较好的方法。(感觉可以通过遍历S2的字符数组,每个字符打头的形式进行组合实现比较麻烦就没多想)
所以采用了第二种方式,写的比较糙,可以看一下,有兴趣的小伙伴可以优化一下,或者有更好的方法也可以在评论区留言
public class IsExistPaiLie {
//判断s1是否存在s2的排列
public static boolean solution(String s1,String s2){
//比对字符序列的出现次数
char[] charArrS2 = s2.toCharArray();
char[] charArrS1 = s1.toCharArray();
int cout = 0;
char[] tempArray = new char[s2.length()]<