美文网首页
比较含退格的字符串-leetcode

比较含退格的字符串-leetcode

作者: 胡子先生丶 | 来源:发表于2018-11-29 20:52 被阅读0次

    题目描述:
    给定 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”。

    思路:
    用栈实现,如果是字母就进行入栈如果是#就进行出站,最后比较两个栈的元素是否一致:

    public class Solution {
           private Stack<string> s1 = new Stack<string>();
           private Stack<string> s2 = new Stack<string>();
        
           public bool BackspaceCompare(string S, string T)
            {
                for (int i = 0; i < S.Length; i++)
                {
                    string val = S.Substring(i, 1);
                    if (val != "#")  s1.push(val);
                    else   s1.pop();
                }
    
                for (int i = 0; i < T.Length; i++)
                {
                    string val = T.Substring(i, 1);
                    if (val != "#") s2.push(val);
                    else s2.pop();
                }
    
                while (s1.peek() != null)
                {
                    if (s1.peek() == s2.peek())
                    {
                        s1.pop();
                        s2.pop();
                    }
                     else return false; 
                }
    
                return true;
            }
    }

    相关文章

      网友评论

          本文标题:比较含退格的字符串-leetcode

          本文链接:https://www.haomeiwen.com/subject/nlrqcqtx.html