其他分享
首页 > 其他分享> > 长按键入

长按键入

作者:互联网

题目:
你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。

你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。

示例 1:
输入:name = “saeed”, typed = “ssaaedd”
输出:false

示例 2:
输入:name = “leelee”, typed = “lleeelee”
输出:true

示例 3:
输入:name = “laiden”, typed = “laiden”
输出:true

class Solution {
public:
	bool isLongPressedName(string name, string typed) {
		int i, pos = 0;
		for (i = 0; i < name.size(); i++){
			if (name[i] != typed[pos]){
				return false;
			}
			while (name[i] == typed[pos]){
				if (name[i] == name[i + 1]){
					pos++;
					break;
				}
				pos++;
			}
		}
		return true;
	}
};

题解:遍历字符串name,让type字符串从前向后依次移动。当name和type字符相等时,type向后走直到两字符不相等时,但是存在特殊情况当name字符串相邻两个字符相等时,就只让type向后走一次即可。

Hots3y 发布了79 篇原创文章 · 获赞 23 · 访问量 7786 私信 关注

标签:字符,name,示例,typed,pos,按键,type
来源: https://blog.csdn.net/Hots3y/article/details/104089715