zoukankan      html  css  js  c++  java
  • Leetcode844.Backspace String Compare比较含退格的字符串

    给定 S 和 T 两个字符串,当它们分别被输入到空白的文本编辑器后,判断二者是否相等,并返回结果。 # 代表退格字符。

    示例 1:

    输入:S = "ab#c", T = "ad#c" 输出:true 解释:S 和 T 都会变成 “ac”。

    示例 2:

    输入:S = "ab##", T = "c#d#" 输出:true 解释:S 和 T 都会变成 “”。

    示例 3:

    输入:S = "a##c", T = "#a#c" 输出:true 解释:S 和 T 都会变成 “c”。

    示例 4:

    输入:S = "a#c", T = "b" 输出:false 解释:S 会变成 “c”,但 T 仍然是 “b”。

    提示:

    1. 1 <= S.length <= 200
    2. 1 <= T.length <= 200
    3. S 和 T 只含有小写字母以及字符 '#'。

    class Solution {
    public:
        bool backspaceCompare(string S, string T) {
            int len1 = S.size();
            int len2 = T.size();
            vector<char> str1(len1, 0);
            vector<char> str2(len2, 0);
            int cnt1 = 0;
            int cnt2 = 0;
            for(int i = 0; i < len1; i++)
            {
                if(S[i] == '#' && cnt1 > 0)
                {
                    cnt1--;
                    continue;
                }
                if(S[i] != '#')
                    str1[cnt1++] = S[i];
            }
            for(int i = 0; i < len2; i++)
            {
                if(T[i] == '#' && cnt2 > 0)
                {
                    cnt2--;
                    continue;
                }
                if(T[i] != '#')
                    str2[cnt2++] = T[i];
            }
            if(cnt1 != cnt2)
                return false;
            for(int i = 0; i < cnt1; i++)
            {
                if(str1[i] != str2[i])
                    return false;
            }
            return true;
        }
    };
  • 相关阅读:
    Netty之Channel*
    Netty之ByteBuf
    Spark On Yarn的各种Bug
    外网无法访问hdfs文件系统
    报错:Unsupported field: HourOfDay
    启动spark-shell --master yarn的bug
    KMP算法思路
    单例模式的正确实现
    redis 持久化
    记一次MacOs降级过程
  • 原文地址:https://www.cnblogs.com/lMonster81/p/10433923.html
Copyright © 2011-2022 走看看