zoukankan      html  css  js  c++  java
  • LeetCode 844 比较含退格的字符串

    LeetCode 844 比较含退格的字符串

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

    重构字符串

    执行用时:2 ms, 在所有 Java 提交中击败了74.87%的用户
    内存消耗:36.2 MB, 在所有 Java 提交中击败了99.88%的用户

    class Solution {
        public boolean backspaceCompare(String S, String T) {
            //一次循环消除所有'#'
            StringBuffer s = new StringBuffer(S);
            StringBuffer t = new StringBuffer(T);
            int curr = 0;
            while(curr<s.length()) {
                if(s.charAt(curr)=='#') {
                    if(curr==0) {
                        s.delete(curr, curr+1);
                    }
                    else {
                        s.delete(curr-1, curr+1);
                        curr--;
                    }
                }
                else {
                    curr++;
                }
            }
    
            curr = 0;
            while(curr<t.length()) {
                if(t.charAt(curr)=='#') {
                    if(curr==0) {
                        t.delete(curr, curr+1);
                    }
                    else {
                        t.delete(curr-1, curr+1);
                        curr--;
                    }
                }
                else {
                    curr++;
                }
            }
    
            if(s.length()!=t.length()) {
                return false;
            }
            for(int i=0; i<s.length(); i++) {
                if(s.charAt(i)!=t.charAt(i)) {
                    return false;
                }
            }
    
            return true;
        }
    }
    
  • 相关阅读:
    容器适配器之queue
    STL之deque
    STL之list
    STL之multiset
    STL之multimap
    STL之set
    string
    命名空间
    Windows Live Writer教程及代码高亮工具
    STL之vector
  • 原文地址:https://www.cnblogs.com/CodeSPA/p/13838345.html
Copyright © 2011-2022 走看看