设置一个$word$的指针$k$,如果$k$能顺利到达终点,说明匹配成功
class Solution {
public:
bool validWordAbbreviation(string word, string abbr) {
int k=0;//index point to word
int n=word.size();
for(int i=0;i<abbr.size();i++)
{
if(isdigit(abbr[i]))//找到连续的所有数字
{
if(abbr[i]=='0') return false;//前导0
int j=i+1;
while(j<abbr.size() && isdigit(abbr[j])) j++;
int cnt=stoi(abbr.substr(i,j-i));
k+=cnt;
if(k>n) return false;//不能超过word长度
i=j-1;
}
else
{
if(word[k]!=abbr[i])//判断字符
return false;
k++;
}
}
return k==n;
}
};