925. 长按键入

>> 饿了么、美团外卖红包领取地址<<

题目:https://leetcode-cn.com/problems/long-pressed-name/

代码:

class Solution {

    public boolean isLongPressedName(String name, String typed) {
        char[] names = name.toCharArray();
        char[] typeds = typed.toCharArray();
        //name长度大于typed,肯定是false
        //为了避免下方代码t-1处出现异常,额外判断0位置的字符
        if (names.length > typeds.length || names[0] != typeds[0]) {
            return false;
        }
        int n = 1;
        int t = 1;
        //双游标遍历
        while (n < names.length && t < typeds.length) {
            if (names[n] == typeds[t]) {
                //相等,游标各自+1
                n++;
                t++;
            } else if (typeds[t] == typeds[t - 1]) {
                //不相等,如果是typed长按导致的则t+1
                t++;
            } else {
                //不是长按导致的,返回false
                return false;
            }
        }
        //name还有字符,证明没输入完,false
        if (n < names.length) {
            return false;
        }
        //typed还有字符,可能剩下的都是长按导致
        while (t < typeds.length) {
            if (typeds[t] != typeds[t - 1]) {
                //不是长按导致,false
                return false;
            }
            t++;
        }
        return true;
    }

}

将字符串转换成字符数组,使用双游标遍历,针对出现的各种情况进行判断即可解答,具体逻辑参考代码及注释。


觉得内容还不错?打赏个钢镚鼓励鼓励!!👍

维特丝(vetes)泡沫发蜡喷雾干胶定型弹力素羊毛卷男女保湿蓬松发胶 泡沫发蜡450ml+旅行装99ml
¥34.00
维特丝(vetes)一梳黑染发剂染发梳植物潮色显白遮盖白发自然清水纯黑发焗油男女梳炫彩 自然黑LW00
¥49.00
维特丝(vetes)染发笔遮白补染快速染发天然植物一次性染发棒 一次性染发棒黑色
¥46.00
维特丝 护发精油防毛躁清香玫瑰奇焕亮发干枯烫发卷发直发头发润发护发素男女士 滋养柔顺护发精油100ml
¥36.00