567 Permutation in String
class Solution {
public boolean checkInclusion(String s1, String s2) {
if (s1.length() > s2.length()) return false;
int[] map1 = new int[26];
int[] map2 = new int[26];
for (int i = 0; i < s1.length(); i++){
map1[s1.charAt(i) - 'a']++;
map2[s2.charAt(i) - 'a']++;
}
for (int i = 0; i < s2.length() - s1.length(); i++){
if (match(map1, map2)) return true;
map2[s2.charAt(i + s1.length()) - 'a']++;
map2[s2.charAt(i) - 'a']--;
}
return match(map1, map2);
}
private boolean match(int[] map1, int[] map2){
for (int i = 0; i < map1.length; i++){
if (map1[i] != map2[i]) return false;
}
return true;
}
}