解决回文词问题
什么是回文词,就是正念反念都一样的词,比如:
abcdcba, 1221, 1234567654321等等等等。
思路:
建一个双端队列,把整个词依次push到双端队列里。之后,使用while循环,循环终止条件为队列里元素个数小于等于1,每次循环时,从头和尾各pop出一个词,比较是否相同,如果相同,继续,如果不相同,返回False。
代码:
def Solution(s):
deque = Deque()
for i in range(len(s)):
deque.push_back(s[i])
deque.printer()
while(deque.size() > 1):
left = deque.pop_front()
right = deque.pop_back()
# 调试
# print(left, right)
# deque.printer()
if left == right:
continue
else:
return False
return True
测试:
print(Solution('11abcddcba11'))
print(Solution('abcdefgfedb'))
print(Solution(''))