字符串的排列

太久没写博客,随便来一个


class Solution { public boolean checkInclusion(String s1, String s2) { int n=s1.length(); int m=s2.length(); if(n>m) return false; //cnt1为s1的字符次数 //cnt2为s1的子串的字符次数 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(cnt2,cnt1)){ return true; } } return false; } }

  

上一篇:leetcode刷题——字符串的排列(Java)


下一篇:(LightOJ - 1395)Dangerous Maze (II)(期望DP)