(1) 不care order。
class Solution {
public:
bool checkInclusion(string s1, string s2) {
if (s1.size() > s2.size()) return false;
int n1=s1.size(), n2=s2.size();
vector<int> m1(128), m2(128);
for (int i=0; i<n1; ++i) {
++m1[s1[i]]; ++m2[s2[i]];
}
if (m1 == m2) return true;
for (int i=n1; i<n2; ++i) {
m2[s2[i]]++; //加入i
m2[s2[i-n1]]--; 减去前 n1个元素,保持 m2里hold住一定的字母的数量。
if (m1 == m2) return true;
}
return false;
}
};