leetcode 字符串中的变位词

题目链接
思路:滑动窗口
分析:从s2中查找s1的位置,不过这里s1在s2中的字符顺序可以是乱的,但是长度肯定是一样的,那么这个长度就是滑动窗口的长度。我们用两个窗口,长度都是s1的长度,然后每次比对里面的内容是否一样。
简单说:
1.将内容装进窗口
2.比对窗口的内容是否一样
代码:

class Solution {public boolean checkInclusion(String s1, String s2) {//存储s1窗口的内容int[] s1Arr = new int[26];//存储s2窗口的内容int[] s2Arr = new int[26];int len1 = s1.length();int len2 = s2.length();int i = 0;if(len1 > len2){return false;}for(; i < len1 ;i++){s1Arr[s1.charAt(i)-'a']++;s2Arr[s2.charAt(i)-'a']++;}for(; i < len2;i++){//比对两个窗口的内容是否一样if(Arrays.equals(s1Arr,s2Arr)){return true;}//窗口前面的出去s2Arr[s2.charAt(i-len1)-'a']--;//后面的一个进来s2Arr[s2.charAt(i)-'a']++;}if(Arrays.equals(s1Arr,s2Arr)){return true;}return false;}
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部