- 回文词”判定
❖ “回文词”指正读和反读都一样的词 如radar、madam、toot
中文“上海自来水来自海上”
“山东落花生花落东山”
❖ 用双端队列很容易解决“回文词”问题 先将需要判定的词从队尾加入deque
再从两端同时移除字符判定是否相同,直到 deque中剩下0个或1个字符
from pythonds.basic.deque import Deque
def palchecker(aString):
chardeque = Deque()
for ch in aString:
#从队尾添加数据
chardeque.addRear(ch)
stillEqual = True
while chardeque.size() > 1 and stillEqual:
#从头部取出数据
first = chardeque.removeFront()
#从尾部取出数据
last = chardeque.removeRear()
#不想等说明不是回文词,都想等剩下一个是回文词
if first != last:
stillEqual = False
return stillEqual
print(palchecker("lsdkjfakf"))
print(palchecker('radar'))
网友评论