关于栈的相关知识点,请参考以下博文
https://blog.csdn.net/xuqiang20121991/article/details/54139431
现在需要用栈来处理回文数,所谓回文字符串就是指正读反读均相同的字符序列,如“席主席”、“记书记”、“aha”和“ahaha”均是回
文,但“ahah”不是回文。通过栈这个数据结构我们将很容易判断一个字符串是否为回文。
class Solution(object):
def isValid(self, s):
"""
:type s: str
:rtype: bool
"""
#构造一个dict,用来判断括号是否是成对的
to_dict = {')':'(', ']':'[', '}':'{'}
#构造一个列表,用于堆栈处理
to_list = [None]
#遍历字符串s
for item in s:
#表达式成立说明符号是成对出现的
if item in to_dict and to_dict[item] == to_list[-1]:
#去除list最后一个元素,即已配对的元素
to_list.pop()
else:
to_list.append(item)
return len(to_list) == 1