每日一道算法题 有效括号序列

题目

有效括号序列_牛客题霸_牛客网 (nowcoder.com)

Python

1长度必须为偶数

2就像开心消消乐一样,一左一右就消掉。

python 复制代码
class Solution:
    def isValid(self , s: str) -> bool:
        # write code here
        # flag=['()','{}','[]']
        # for _ in range(len(s)//2):
        #     for i in flag:
        #         if i in s:
        #             s=s.replace(i,'')
        # # print(s)
        # if  len(s)==0:
        #     return True
        # else:
        #     return False
        if len(s)%2==1:
            return False
        while '()' in s or '{}' in s or '[]' in s:
            s=s.replace('()','').replace('{}','').replace('[]','')

        return True if s=='' else False

C++

使用栈,遇到左括号,右括号进栈,遇到其他则取栈顶进行匹配

cpp 复制代码
class Solution {
public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 
     * @param s string字符串 
     * @return bool布尔型
     */
    bool isValid(string s) 
    {
        // write code here
        int n=s.size();
        if(n%2==1) return false;
        stack<char> sta;
        for(int _ =0;_<n;_++)
        {
            if(s[_]=='(') sta.push(')');
            else if(s[_]=='{') sta.push('}');
            else if(s[_]=='[') sta.push(']');
            else
            {
                if(sta.empty()||sta.top()!=s[_])
                    return false;
                sta.pop();
            }
        }
        return sta.empty();
    }
};

C语言

思路同c++

cpp 复制代码
/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 * 
 * @param s string字符串 
 * @return bool布尔型
 */
#include <string.h>
bool isValid(char* s ) 
{
    // write code here
    int l=strlen(s);
    if(l%2==1) return 0;
    char *stack=(char* )malloc(l*sizeof(char));
    int top=0;
    for(int _ =0;_<l;_++)
    {
        if(s[_]=='(') stack[top++]=')';
        else if(s[_]=='{') stack[top++]='}';
        else if(s[_]=='[') stack[top++]=']';
        else
         {
            if(top<1) return 0;
            if(stack[top-1]==s[_]) stack[--top]='\0';   //理解为c++处的pop
         };
    }
    if(strlen(stack)>0) return 0;
    return 1;
}
相关推荐
xiaoye-duck19 小时前
数据结构之二叉树-链式结构(下)
数据结构·算法
Kt&Rs19 小时前
11.13 LeetCode 题目汇总与解题思路
数据结构·算法
Tech_Lin19 小时前
手搓工具之手写签字识别提取工具
python
努力学习的小廉19 小时前
我爱学算法之—— 字符串
c++·算法
Amber_3720 小时前
php的数组和python的列表 -- 横向对比学习
python·学习·php
中文Python20 小时前
小白中文Python-双色球LSTM模型出号程序
开发语言·人工智能·python·lstm·中文python·小白学python
yuuki23323320 小时前
【数据结构】常见时间复杂度以及空间复杂度
c语言·数据结构·后端·算法
闻缺陷则喜何志丹20 小时前
【分块 差分数组 逆元】3655区间乘法查询后的异或 II|2454
c++·算法·leetcode·分块·差分数组·逆元
superbadguy20 小时前
用curl实现Ollama API流式调用
人工智能·python
嚴 帅20 小时前
Pytnon入门学习(一)
python