双指针,阅读理解题。
class Solution {
public:
int expressiveWords(string s, vector<string>& words) {
int ans=0;
auto check=[&](string t){
int l=0,r=0;
while(l<s.size()&&r<t.size()){
if(s[l]!=t[r]) return false;
int c1=0,c2=0;
char p=s[l];
while(l<s.size()&&s[l]==p) l++,c1++;
while(r<t.size()&&t[r]==p) r++,c2++;
if(c1<c2) return false;
if(c1>c2&&c1<3) return false;
}
return l==s.size()&&r==t.size();
};
for(auto p:words) if(check(p)) ans++;
return ans;
}
};