原题链接:
这个代码写的真丑
不过好歹是写完了。。。
可是我被自己丑到,而且我还懒得改了,回去洗澡
class Solution {
public:
int expressiveWords(string s, vector<string>& words) {
vector<int> nums;
string s1;
for(int i=0;i<s.size();)
{
char ch=s[i];
int num=0;
s1+=ch;
while(i<s.size() && s[i]==ch)
{
i++; num++;
}
nums.push_back(num);
}
int res=0;
for(auto word:words)
{
vector<int> nums1;
string tmp;
for(int i=0;i<word.size();)
{
char ch=word[i];
int num=0;
tmp+=ch;
while(i<word.size() && word[i]==ch)
{
i++; num++;
}
nums1.push_back(num);
}
if(nums.size()!=nums1.size() || s1!=tmp) continue;
else
{
int flag=1;
for(int i=0;i<nums.size();i++)
{
if(nums[i]!=nums1[i] && (nums[i]<3 || nums[i]<nums1[i]))
{
flag=0; break;
}
}
if(flag) res++;
}
}
return res;
}
};