LeetCode每日一题:比较含退格的字符串(No.844)

栏目: 编程工具 · 发布时间: 6年前

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

示例:

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

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

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

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

思考:

循环遍历字符串字符,用一个StringBuilder来存原字符串中字母字符。
如果字符为“#”且StringBuilder长度大于0,则删除StringBuilder中末尾字符,遍历结束返回StringBuilder。
最终比较两个字符串返回值是否相同。
复制代码

实现:

class Solution {
public boolean backspaceCompare(String S, String T) {
    return function(S).equals(function(T));
}
 public String function(String s) {
        StringBuilder sb = new StringBuilder();
        for (char c : s.toCharArray()) {
            if (c != '#') {
                sb.append(c);
            }
            else {
                if (sb.length() > 0)
                    sb.deleteCharAt(sb.length() - 1);
            }
        }
        return sb.toString();
    }
}复制代码

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

探索需求

探索需求

章柏幸、王媛媛、谢攀、杰拉尔德・温伯格、唐纳德・高斯 / 章柏幸、王媛媛、谢攀 / 清华大学出版社 / 2004-7-1 / 39.00元

本书将与您一起寻找"什么是客户真正想要的"这一问题的答案。 本书着眼于系统设计之前的需求过程,它是整个开发过程(如何设计人们想要的产品和系统)中最有挑战性的那部分。通过对一些需求分析中的常见误区和问题的分析和讨论,从和客户沟通开始,深入研究一些可能的需求,澄清用户和开发者期望值,最终给出了能够大幅度提高项目成功几率的一些建议方法。 本书由该领域内公认的两位作者合著,搜集了他们在大大小小......一起来看看 《探索需求》 这本书的介绍吧!

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试