美文网首页
栈-N1003-检查替换后的词是否有效

栈-N1003-检查替换后的词是否有效

作者: 三次元蚂蚁 | 来源:发表于2019-04-02 12:29 被阅读0次

题目

  • 概述:给定有效字符串"abc",且在有效字符串中任意位置插入有效字符串仍为有效字符串,其它都是无效字符串,现在给你一个字符串,让你判断给定的字符串是否是有效字符串

  • 输入:字符串,长度范围[1, 20000]

  • 输入子项:'a'或'b'或'c'

  • 输出:字符串有效返回true,否则返回false

  • 出处:https://leetcode-cn.com/problems/check-if-word-is-valid-after-substitutions/

思路

  • 由于需要存储字符串"abc"的片段信息,在之后需要的时候使用,所以考虑用栈实现

  • 遍历给定的字符串:

    1. 'a' => 将'a'入栈
    2. 'b':
      1. 栈为空 => 返回false
      2. 栈顶字符为'a' => 将栈顶字符替换为'b'
      3. 栈顶字符为'b' => 返回false
    3. 'c':
      1. 栈为空 => 返回false
      2. 栈顶字符为'a' => 返回false
      3. 栈顶字符为'b' => 将栈顶元素弹出
  • 最后栈为空则字符串有效,否则字符串无效

代码

class Solution {
    public boolean isValid(String S) {
        LinkedList<Character> stack = new LinkedList<>();
        for (char c : S.toCharArray()) {
            switch (c) {
                case 'a':
                    stack.push(c);
                    break;
                case 'b':
                    if (stack.isEmpty() || stack.peek() == 'b') {
                        return false;
                    }
                    stack.pop();
                    stack.push(c);
                    break;
                case 'c':
                    if (stack.isEmpty() || stack.peek() == 'a') {
                        return false;
                    }
                    stack.pop();
                    break;
            }
        }
        
        return stack.isEmpty();
    }
}

相关文章

  • 栈-N1003-检查替换后的词是否有效

    题目 概述:给定有效字符串"abc",且在有效字符串中任意位置插入有效字符串仍为有效字符串,其它都是无效字符串,现...

  • LeetCode #1003 Check If Word Is

    1003 Check If Word Is Valid After Substitutions 检查替换后的词是否...

  • 1003. 检查替换后的词是否有效(Python)

    难度:★★☆☆☆类型:字符串方法:替换 题目 力扣链接请移步本题传送门[https://leetcode-cn.c...

  • Oracle 重建同义词

    Oracle synonym docss64dbstar检查同义词是否有效 重建同义词

  • 字符串中有效的括号

    判断括号是否有效 1.使用栈的先进后出,先把前括号对应的后括号压栈 当后面再遇到后括号的时候,只用比较相等就可以了...

  • inline函数

    宏函数的优点: 内嵌代码,避免压栈,出栈的开销 缺点: 只能进行简单的字符替换,没有类型安全检查 普通函数的优点:...

  • python每日一题总结8

    20180625 qzd 每日一题26 -- 有效单词词广场 给定一个单词序列,检查它是否构成一个有效单词广场。一...

  • 20. Valid Parentheses

    遍历遇到左括号一律进栈,右括号与栈顶的数比较,注意判断栈不能为空,另外返回时也要检查栈是否空

  • 8.30 leetcode刷题(1)

    栈和队列:20 有效的括号 思路:利用栈去做匹配,定义好哪种情况入栈,哪种情况出栈。最后还要判断一下栈是否为空 b...

  • 关于实现word的查找替换功能的Python3

    实现功能 输入Word的文件名,被替换的词以及替换后的词,自动实现替换功能。 步骤 1.打开文件2.查找关键词3....

网友评论

      本文标题:栈-N1003-检查替换后的词是否有效

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