leetcode 925. 长按键入

2023.9.7

leetcode 925. 长按键入_第1张图片

        我的基本思路是两数组字符逐一对比,遇到不同的字符,判断一下typed与上一字符是否相同,不相同返回false,相同则继续对比。  最后要分别判断name和typed分别先遍历完时的情况。直接看代码:

class Solution {
public:
    bool isLongPressedName(string name, string typed) {
        if(typed[0] != name[0]) return false;//第一个字符对不上直接返回false
        if(typed.size() < name.size()) return false;//typed的总字符比name小直接返回false
        int i=0;
        int j=0;
        while(i < name.size() && j < typed.size())
        {
            if(typed[j] == name[i])
            {
                i++;
                j++;
            }
            else
            {
                if(typed[j] == typed[j-1]) j++;
                else return false;
            }
        }
        while(i==name.size() && j

         有点小繁琐,但好像看了一圈也只有双指针的办法。

你可能感兴趣的:(leetcode专栏,leetcode,算法,cpp,数据结构)