链接:925. 长按键入
题解:https://leetcode-cn.com/problems/long-pressed-name/solution/chang-an-jian-ru-by-leetcode-solution/
复杂度:
class Solution {
public:
bool isLongPressedName(string name, string typed) {
if(name.size() == 0 || typed.size() == 0) {
return name.size() == typed.size();
}
int n = 0;
int t = 0;
while(n < name.size() && t < typed.size()) {
if(name[n] != typed[t]) {
return false;
}
int len1 = 1;
char c_n = name[n++];
while(n < name.size()) {
if(name[n] == c_n) {
++n;
++len1;
} else {
break;
}
}
int len2 = 1;
char c_t = typed[t++];
while(t < typed.size()) {
if(typed[t] == c_t) {
++t;
++len2;
} else {
break;
}
}
// 比较两个相同的字符,哪个长
if(len1 > len2) {
return false;
}
}
if(n < name.size() || t < typed.size()) {
return false;
}
return true;
}
};