Python实现字符串是否合法

这篇具有很好参考价值的文章主要介绍了Python实现字符串是否合法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

# 给出一个仅包含字符'(',')','{','}','['和']',的字符串,判断给出的字符串是否是合法的括号序列
# 括号必须以正确的顺序关闭:"()"和"()[]{}"都是合法的括号序列,但"(]"和"([)]"不合法。
# 左括号必须用相同类型的右括号闭合。
# 左括号必须以正确的顺序闭合。
# 注意空字符串可被认为是有效字符串。
'''
思路:利用列表的append()和pop()函数实现栈先进后出的逻辑。
  1、遍历输入字符串
  2、如果当前字符为左半边括号时,则将其压入栈中
  3、如果遇到右半边括号时,分类讨论:
        a)若此时栈为空,则直接返回false
        b)若栈顶元素不为对应的左半边括号,返回false
        c)若栈不为空且为对应的左半边括号,则取出栈顶元素,继续循环
''' 
class StrVaild:
    def isvaild(self,str):
        stack = []
        for item in str:
            if item == '(' or item == '[' or item == '{':
                stack.append(item)
            else:
                if stack == []:
                    return False
                elif item == ')' and stack.pop()!='(':
                    return False
                elif item == ']' and stack.pop()!='[':
                    return False
                elif item == '}' and stack.pop()!='{':
                    return False
        return stack == []
sv=StrVaild()
print(sv.isvaild('['))
print(sv.isvaild('()'))
print(sv.isvaild('[)]'))
print(sv.isvaild('()[]{}'))
print(sv.isvaild('([)]'))
print(sv.isvaild('[()[]]'))
print(sv.isvaild('[([()])]'))

执行结果:

False
True
False
True
False
True
True文章来源地址https://www.toymoban.com/news/detail-409847.html

到了这里,关于Python实现字符串是否合法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java判断一个字符串是否包含某个字符串

    开发过程中,有时会判断一个字符串是否包含某个字符串的操作,这里总结判断方法。 方式一:contains()方法         理解:contains() 方法用于判断字符串中是否包含指定的字符或字符串。(判断一个字符串是否包含某个字符串)         语法:public boolean contains(CharSequence

    2024年02月13日
    浏览(96)
  • c# 判断一个字符串列表是否包含另一个字符串列表中某一个元素

    当需要判断一个字符串列表是否包含另一个字符串列表中的某个元素时,可以使用 LINQ 查询来完成。下面是一个示例方法: 在上面的示例中,我们有两个字符串列表 list1 和 list2。我们想要判断 list1 是否包含了 list2 中的某个元素。 我们定义了 ListContainsElement 方法,该方法接

    2024年02月12日
    浏览(83)
  • Java判断一个字符串是否包含某个字符

    1 问题 如何利用Java通过不同的方法来判断一个字符串是否包含某个字符。 2 方法 .contains方法 这个是利用java.lang.String.contains() 方法返回true,当且仅当此字符串包含指定的char值序列,此方法返回true,如果此字符串包含,否则返回false。 (2).indexOf方法 这一个是利用java.lang.Str

    2024年02月16日
    浏览(97)
  • 判断一个字符串是否为另一个字符串旋转之后的字符串 (arr1是arr2右旋得到)

    问题: 1.判断函数传参时忘记给arr2加[] 2.把if放在for之外,导致判断不出,程序报错

    2024年02月16日
    浏览(40)
  • C++函数isStringNumeric,用于检查一个字符串是否只包含数字字符。

    C++函数isStringNumeric,用于检查一个字符串是否只包含数字字符。 函数接受一个 std::string 类型的参数 str ,表示要检查的字符串。 函数使用了一个循环遍历字符串中的每个字符,对于每个字符,通过 std::isdigit(ch) 函数判断它是否是数字字符。如果存在非数字字符,则返回 fal

    2024年02月09日
    浏览(67)
  • Python 是否有字符串“包含”子字符串方法?

    这个问题的答案是社区的努力。编辑现有答案以改进这篇文章。它目前不接受新的答案或交互。 我正在寻找 Python 中的 string.contains 或 string.indexof 方法。 我想要做: 一个优秀的自由职业者,应该有对需求敏感和精准需求捕获的能力,而huntsbot.com提供了这个机会 使用 in opera

    2024年02月12日
    浏览(90)
  • Python字符串比较:如何判断两个字符串是否相等?

    Python字符串比较:如何判断两个字符串是否相等? 在Python编程中,字符串是最常用的数据类型之一。当我们需要比较两个字符串时,通常需要判断它们是否相等。这篇文章将详细介绍Python中比较两个字符串的方法。 使用“==”运算符比较字符串 在Python中,可以使用“==”运算

    2023年04月11日
    浏览(73)
  • 华为OD机试 - 提取字符串中的最长合法简单数学表达式(Java & JS & Python & C)

    题目描述 提取字符串中的最长合法简单数学表达式,字符串长度最长的,并计算表达式的值。如果没有,则返回 0 。 简单数学表达式只能包含以下内容: 0-9数字,符号+-* 说明: 所有数字,计算结果都不超过long 如果有多个长度一样的,请返回第一个表达式的结果 数学表达

    2024年02月02日
    浏览(51)
  • 编写函数,判断一个字符串是否是回文。在主函数中输入一个字符串,调用自定义函数,输出结果。 所谓回文是指顺读和倒读都一样的字符串。如“AMNMA“是回文。

    编写函数,判断一个字符串是否是回文。在主函数中输入一个字符串,调用自定义函数,输出结果。 所谓回文是指顺读和倒读都一样的字符串。如\\\"AMNMA\\\"是回文。 测试输入:abcba 测试输出:是回文! 这道题要求编写一个函数来判断一个字符串是否是回文,并在主函数中调用该

    2024年02月03日
    浏览(68)
  • vue前端判断某一个String类型的集合中是否包含某一个字符串怎么做

    在上面的代码中,我们使用 includes() 方法判断 strList 数组中是否包含 targetStr 字符串,如果包含则输出“字符串集合中包含目标字符串”,否则输出“字符串集合中不包含目标字符串”。 该博文为原创文章,未经博主同意不得转。本文章博客地址:https://cplusplus.blog.csdn.net/a

    2024年02月21日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包