首页 > 其他分享 >leetcode678:有效的括号字符串

leetcode678:有效的括号字符串

时间:2024-07-07 14:56:50浏览次数:12  
标签:return 示例 括号 num leetcode678 字符串 true

给你一个只包含三种字符的字符串,支持的字符类型分别是 '('')' 和 '*'。请你检验这个字符串是否为有效字符串,如果是 有效 字符串返回 true 。

有效 字符串符合如下规则:

  • 任何左括号 '(' 必须有相应的右括号 ')'
  • 任何右括号 ')' 必须有相应的左括号 '(' 。
  • 左括号 '(' 必须在对应的右括号之前 ')'
  • '*' 可以被视为单个右括号 ')' ,或单个左括号 '(' ,或一个空字符串 ""

示例 1:

输入:s = "()"
输出:true

示例 2:

输入:s = "(*)"
输出:true

示例 3:

输入:s = "(*))"
输出:true

提示:

  • 1 <= s.length <= 100
  • s[i] 为 '('')' 或 '*'

解:python语言

 注意题目要求:左括号 '(' 必须在对应的右括号之前 ')'。
 思路:扫描两遍,遇到“(”就+1,遇到“)”就-1,每一时刻都要“*”和括号的中和程度!!!每次都要保证正向的*+(>=),反向的*+)>=(。

class Solution(object):
    def checkValidString(self, strs):
        """
        :type s: str
        :rtype: bool
        """
        num = 0
        for s in strs:
            if s == ')':
                num -= 1
            else:
                num += 1
                
            if num < 0:
                return False
        
        num = 0
        for s in strs[::-1]:
            if s == '(':
                num -= 1
            else:
                num += 1
                
            if num < 0:
                return False
            
        return True

标签:return,示例,括号,num,leetcode678,字符串,true
From: https://blog.csdn.net/Oxford1151/article/details/140245450

相关文章

  • Redis基本命令源码解析-字符串命令
    1.set用于将kv设置到数据库中2.mset批量设置kvmset(msetnx)key1value1key2value2...mset:msetCommandmsetnx:msetnxCommandmsetCommand和msetnxCommand都调用msetGenericCommand2.1msetGenericCommand如果参数个数为偶数,则响应参数错误并返回如果nx=1,则......
  • L1-050 倒数第N个字符串
    给定一个完全由小写英文字母组成的字符串等差递增序列,该序列中的每个字符串的长度固定为L,从L个a开始,以1为步长递增。例如当L为3时,序列为{aaa,aab,aac,...,aaz,aba,abb,...,abz,...,zzz}。这个序列的倒数第27个字符串就是zyz。对于任意给定的L,本题要......
  • 仅做笔记用:base64字符串转换为十六进制形式表示的二进制数据
    使用JavaScript实现一个函数,参数是一个base64的字符串,将这个字符串解析成二进制数据,并将这个二进制数据的每个字节以一个十六进制两位数表示出来,每个字节的十六进制两位数之间空一格,每行16个字节,返回整理好的十六进制形式。functionbase64ToHex(base64Str){//解析ba......
  • C语言实现字符串排序
    如果只有英文字符且不区分大小写的话按照字典序排序可以用strcmp函数,两个字符串自左向右逐个字符相比(按ASCII值大小相比较)strcmp(s1,s2)当s1<s2时,返回为负数;当s1==s2时,返回值=0;当s1>s2时,返回正数。例如"A"<"C"、"d">"D"、"computer">"compare"如果想要不区分大小写的......
  • c++字符串知识总结
    读字符串函数fgets功能:从文件中读取字符串,每次只读取一行。注意:fgets每次最多只能读取n-1个字2.符,第n个为NULL。当遇到换行符或者EOF时,即使当前位置在n-1之前也读出结束。若函数返回成功,则返回字符串数组str的首地址。例:小L很喜欢听私人笑声,可是有些歌曲他没有夹带私人笑......
  • 力扣第7题:整数反转 字符串函数综合运用(C++)
    给你一个32位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围 [−231, 231 −1] ,就返回0。假设环境不允许存储64位整数(有符号或无符号)。示例1:输入:x=123输出:321示例2:输入:x=-123输出:-321示例3:......
  • 力扣第22题:括号生成 深度优先搜索(DFS)和它的优化(C++)
    数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例:输入:n=3输出:["((()))","(()())","(())()","()(())","()()()"]思路递出去,再归回来,是为递归。DFS算法是利用递归思想的一种搜索算法。想象一个矿井,从地面到井底有多层......
  • 字符串分隔
    描述•输入一个字符串,请按长度为8拆分每个输入字符串并进行输出;•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。输入描述:连续输入字符串(每个字符串长度小于等于100)输出描述:依次输出所有分割后的长度为8的新字符串比较笨的一个方法:有更好的建议欢迎......
  • send_file(image_path, mimetype=‘image/jpg‘) 如何再传递一个字符串
      欢迎关注我......
  • 字符串函数库的经典使用学习
    <?php//1.单引号定义字符串//2.双引号定义字符串//3.定界符定义字符串//1.单引号定义字符串//echo'thisis'my'mother';echo'thisis\'my\'mother<br>';//单引号不能解析转义符\n换行\t缩进echo'this\nisasimple\tstr......