zoukankan      html  css  js  c++  java
  • 1003. Check If Word Is Valid After Substitutions Medium检查替换后的词是否有效

    网址:https://leetcode.com/problems/check-if-word-is-valid-after-substitutions/

    参考:https://leetcode.com/problems/check-if-word-is-valid-after-substitutions/discuss/247626/JavaPythonC%2B%2B-Stack-Solution-O(N

    方法1:使用c++自带的find函数和erase函数

    class Solution {
    public:
        bool isValid(string S) {
            while(!S.empty())
            {
                auto pos = S.find("abc");
                if(pos != string::npos)
                    S.erase(pos,3);
                else
                    return false;
            }
            return true;
        }
    };

    方法2:使用栈的思想

    遇到 'c' 则检查栈内是否存在'a', 'b',并且要严格按照顺序排列

    不合法则直接return false

    若for循环终止后仍然未执行return,需要检查栈的大小,解决"aabcabc"这一类字符串

    class Solution {
    public:
        bool isValid(string S) {
            vector<char> stack;
            int n;
            for(char c : S)
            {
                n = stack.size();
                if(c == 'c')
                {
                    if(n < 2 || stack[n-1] != 'b' || stack[n-2] != 'a')
                        return false;
                    stack.pop_back();
                    stack.pop_back();
                }
                else
                    stack.push_back(c);
            }
            return stack.size() == 0;
        }
    };

  • 相关阅读:
    XRTable 表新增列和行数据
    sql server 清理数据库日志
    C# 数字 转换 大写汉字
    NavBarControl 简单配置
    bandedGridView
    TileView 基本配置
    CardView 基本配置
    ButtonEdit 参数配置
    无边框窗体,鼠标移动窗体
    【网站】windows phpstudy v8.1搭建https
  • 原文地址:https://www.cnblogs.com/tornado549/p/10542104.html
Copyright © 2011-2022 走看看