你的朋友正在使用键盘输入他的名字 name。偶尔,在键入字符 c 时,按键可能会被长按,而字符可能被输入 1 次或多次。
你将会检查键盘输入的字符 typed。如果它对应的可能是你的朋友的名字(其中一些字符可能被长按),那么就返回 True。
1.typed需满足:
多余的字符必须和前一项相同必须按顺序包含所有name的字符 class Solution { public: bool isLongPressedName(string name, string typed) { int n=1,t=1; //判断下标为0的字符是否相同 if(name[0]!=typed[0]){ return false; } //从下标为1开始,判断name和typed对应的字符是否相同 //相同,则下标n,t同时+1 //不同,则判断当前typed的字符是否前一个字符的长按键入(相同)。如果是,t++;如果不是,return false while(t<typed.size()){ if(name[n]==typed[t]){ n++; t++; } else{ if(typed[t]==typed[t-1]){ t++; } else{ return false; } } } //判断是否包含name的所有字符 if(n==name.size()){ return true; } else return false; } };