//925. 长按键入
//转换成这样一个问题:typed能不能由name变换而来
//使用双指针(i,j)遍历两个字符串
//如果对应的字符相同,都加一
//如果不同,就要看name[i-1]是否等于typed[j]
// 如果相同,j加一
// 如果不同,直接返回false
//最后需要判断,name是否全部遍历了
class Solution {
public:
bool isLongPressedName(string name, string typed) {
if (name.empty() || typed.empty() || name.size() > typed.size())
return name == typed;
name = "#" + name + "#";
typed = "#" + typed;
int i, j;
for (i = 0, j = 0; i < name.size() && j < typed.size(); j++) {
if (name[i] == typed[j]) i++;
else if (name[i - 1] != typed[j]) return false;
}
return name[i] == '#';
}
};
LeetCode925. 长按键入
最新推荐文章于 2024-11-01 15:19:21 发布