美文网首页
2021.3.9每日一题

2021.3.9每日一题

作者: Yaan9 | 来源:发表于2021-03-09 09:22 被阅读0次

1047. 删除字符串中的所有相邻重复项

给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。
在 S 上反复执行重复项删除操作,直到无法继续删除。
在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。
示例:

输入:"abbaca"
输出:"ca"
解释:
例如,在 "abbaca" 中,我们可以删除 "bb" 由于两字母相邻且相同,这是此时唯一可以执行删除操作的重复项。之后我们得到字符串 "aaca",其中又只有 "aa" 可以执行重复项删除操作,所以最后的字符串为 "ca"。

题解

使用栈,遍历该字符串,如果当前字符和栈顶字符相同,我们就将其消去,否则就将其入栈。

    public String removeDuplicates(String S) {
        if (S == null || S.length() < 1) {
            return null;
        }
        Deque<Character> stack = new ArrayDeque<>();
        char[] chars = S.toCharArray();
        int i = 0;
        while (i < chars.length) {
            char cur = chars[i++];
            if (!stack.isEmpty() && stack.peek() == cur) {
                stack.pop();
                continue;
            }
            stack.push(cur);
        }
        StringBuilder sb = new StringBuilder();
        while (!stack.isEmpty()) {
            sb.append(stack.pop());
        }
        return sb.reverse().toString();
    }

分享一个原地的算法

    public String removeDuplicates(String S) {
        char[] s = S.toCharArray();
        int top = -1;
        for (int i = 0; i < S.length(); i++) {
            if (top == -1 || s[top] != s[i]) {
                s[++top] = s[i];
            } else {
                top--;
            }
        }
        return String.valueOf(s, 0, top + 1);
    }

相关文章

  • 2021.3.9每日一题

    1047. 删除字符串中的所有相邻重复项[https://leetcode-cn.com/problems/rem...

  • Day 4 Project 我的微信好友

    附:每日一题

  • 70.我的脸比猴子的脸干净

    创作于2021.3.9秦岭树

  • 69.是灵魂给我泪水

    创作于2021.3.9秦岭树

  • 2021.3.9

    最近察觉到自己很多情绪,今天让同修帮我做了一个情绪处理,让我感受到了很多.我发现自己身体有两股能量,一个是妈妈,一...

  • 2021.3.9

    落地真经严格就是爱,放纵既是害 目标确认 目标:油卡目标:11完成✅0张 产值目标153000,台次目标100台。...

  • 2021.3.9

    分别的第20天,相隔700公里,接近9小时的车程,今天你终于要回东莞啦,带来我喜欢的狗子,我喜欢的土特产,回到...

  • 2021.3.9

    今天一天情绪都低落,因为三八节礼物,涛涛说我何必在意这些,想买什么自己买就好了。干嘛给自己找气生。可是,我什么都自...

  • 2021.3.9

    进入到交易中总是迷失自我,太烦了。这种状态自己都认为赚到钱,每天还在做什么呢?莫名其妙的人!行动起来吧,克服心中的...

  • 2021.3.9

    上午两节英语课听得挺无聊的,没有了听第一节课时候的兴奋感,再加上我高中英语基础丢得太多了,很多都听不懂,听得特别...

网友评论

      本文标题:2021.3.9每日一题

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