我有一个显示方括号的程序,'['
和']'
。它以随机顺序和随机数量(最多99)显示它们。
下面的代码是我当前的代码,每次运行模块时都会显示以下内容。
输入:
[[[[]]]]
[][]][]][[][]
[]]]][[[[[[]]][][][[]
我的代码:
import random
import string
def randomGen(N):
return random.randint(1,N)
char1 = '['
char2 = ']'
finalist = []
newList = []
newList2 = []
newValue = randomGen(99)
newValue2 = randomGen(99)
for i in range(newValue):
newList.append('[')
for j in range(newValue2):
newList2.append(']')
finalist = newList + newList2
for everChar in finalist:
print everChar,
我现在希望程序告诉用户显示的括号是平衡的还是不平衡的。我的意思是它是否由完全嵌套的对组成。
所以'[][][]'
是平衡的,'[]]][[]'
是不平衡的。
当我的模块运行时,我希望它显示一些关于括号的'balanced'
或'unbalanced'
文本。
我已将此添加到我的代码中,我不确定为什么它不起作用但我认为我的顺序是正确的:
def balanced(input):
opened = 0
for c in input:
if c == '[':
openend += 1
elif c == ']':
opened -= 1
if opened < 0:
print 'Not Balanced'
if opened > 0:
print 'Not Balanced'
if opened == 0:
print 'Balanced'
print opened
return opened == 0
答案 0 :(得分:4)
对于按任意顺序包含[
和]
的常规输入:
def balanced(input):
opened = 0
for c in input:
if c == '[':
opened += 1
elif c == ']':
opened -= 1
if opened < 0:
return False
return opened == 0
答案 1 :(得分:3)
对于此代码,您只需检查if newValue == newValue2
。