class Solution {
public int expressiveWords(String s, String[] words) {
int res = 0;
if (s.isEmpty()) {
for (String word : words) {
if (word.isEmpty()) res++;
}
return res;
}
List<Pair> q = new ArrayList<>();
for (int i = 0; i < s.length(); i++) {
int j = i + 1;
while (j < s.length() && s.charAt(i) == s.charAt(j)) j++;
q.add(new Pair(s.charAt(i), j - i));
i = j - 1;
}
for (String word : words) {
int k = 0;
for (int i = 0; i < word.length(); i++) {
if (k == q.size()) {
k = -1;
break;
}
if (q.get(k).x != word.charAt(i)) break;
int j = i + 1;
while (j < word.length() && word.charAt(i) == word.charAt(j)) j++;
int c1 = q.get(k).y, c2 = j - i;
if (c1 < c2) break;
if (c1 < 3 && c1 != c2) break;
k++;
i = j - 1;
}
if (k == q.size()) res++;
}
return res;
}
static class Pair {
char x;
int y;
Pair(char x, int y) {
this.x = x;
this.y = y;
}
}
}
标签:文字,word,charAt,int,res,情感,++,809,length
From: https://www.cnblogs.com/eiffelzero/p/16926597.html