public class DayCode {
public static void main(String[] args) {
String s1 = "ab", s2 = "eidbaooo";
boolean ans = new DayCode().checkInclusion(s1, s2);
System.out.println("ans is " + ans);
}
/**
* https://leetcode-cn.com/problems/permutation-in-string/
* @param s1
* @param s2
* @return
*/
public boolean checkInclusion(String s1, String s2) {
int n = s1.length();
int m = s2.length();
if (n > m) {
return false;
}
int[] cnt1 = new int[26];
int[] cnt2 = new int[26];
for (int i = 0; i < n; ++i) {
++cnt1[s1.charAt(i) - 'a'];
++cnt2[s2.charAt(i) - 'a'];
}
if (Arrays.equals(cnt1, cnt2)) {
return true;
}
for (int i = n; i < m; ++i) {
++cnt2[s2.charAt(i) - 'a'];
--cnt2[s2.charAt(i - n) - 'a'];
if (Arrays.equals(cnt1, cnt2)) {
return true;
}
}
return false;
}
}
评论