Python|只含有括号的字符串是否有效
问题描述给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。有效字符串需满足:1.左括号必须用相同类型的右括号闭合。2.左括号必须以正确的顺序闭合。示例1:输入:[]输出:字符串中括号有效 示例2:输入:(]输出:字符串中括号无效解决方案1)定义一个函数,输入字符串,首先判断字符串是否为空字符串,若为空,则不符合题意,打印无效。def str():str = input(“请输入一个只包括‘(’,’)’,‘[‘,’]’,’{‘,’}’”的字符串:)if str.strip() == ‘’: print(“字符串无效”)2)判断字符串中括号的个数,若为单数那必定是无效。if len(str.strip()) > 0:if len(str) % 2 == 1: print(‘字符串无效’)3)判断字符串中的括号是否为相同类型闭合,是否按照正确的顺序闭合。if len(str) % 2 == 0: for i in range(int(len(str))): for j in range(len(str) - 2): x1 = str[j] == ‘(‘ and str[j + 1] == ‘)’ x2 = str[j] == ‘[‘ and str[j + 1] == ‘]’ x3 = str[j] == ‘{‘ and str[j + 1] == ‘}’ if x1 or x2 or x3: str = str[:j] + str[j + 2] break if len(str) == 2: d = [‘()’,’[,]’,’{,}’] if str not in d: print(‘字符串中的括号无效’) else: print(‘字符串中的括号有效’) if len(str) > 2: print(‘字符串中括号无效’)4)最后打印出str()就行
图3.1 运行流程结语此题主要需要想办法判断括号左右是否符合条件,在合适的地方跳出循环,判断字符串的长度即可,多思考多尝试对此类题也会有更深的理解。实习编辑:刘凤莲稿件来源:深度学习与文旅应用实验室(DLETA)