forthespada / InterviewGuide

🔥🔥「InterviewGuide」是阿秀从校园->职场多年计算机自学过程的记录以及学弟学妹们计算机校招&秋招经验总结文章的汇总,包括但不限于C/C++ 、Golang、JavaScript、Vue、操作系统、数据结构、计算机网络、MySQL、Redis等学习总结,坚持学习,持续成长!
https://interviewguide.cn/
Apache License 2.0
5.3k stars 1.42k forks source link

精选leecode300题,双指针925题 #138

Open tjl8787 opened 10 months ago

tjl8787 commented 10 months ago

秀哥好,925这道题,有个用例 输入name ="alex"typed ="aaleelx"预期结果false,参考网站解法时发现现在跑不通了。我的想法是在用双指针比较两个string时,如果typed对应元素与name对应元素不相等,多考虑一个if判断下当前typed元素是否和前一个typed元素相等,不相等直接返回false。 代码为: bool isLongPressedName(string name, string typed) { if(name.size()>typed.size()){ return false; } int len1=name.size(); int len2=typed.size(); unsigned i=0,j=0; while(i<len1 and j<len2){ if(name[i]==typed[j]){ i++; j++; } else{ // 如果当前字符与前一个字符相等,继续循环 if(j > 0 && typed[j] == typed[j - 1]){ j++; } // 否则,说明输入不符合要求,返回 false else{ return false; } } } while (j < len2 && typed[j] == typed[j - 1]) { j++; } return i == len1 && j == len2; }