我试图写一个程序来检查输入的字符串是否是回文,使用堆栈的基本概念。我不知道在stack1.insert函数中输入什么索引。请帮忙?或者你认为有更简单的方法吗?你知道吗
def palindrome(str1):
stack1 = []
palInd = False
for chr in str1:
stack1.insert(0, chr)
for i in range(len(str1)-1):
if str1[i]==stack1.pop():
palInd = True
else:
palInd = False
return palInd
print palindrome("madam")
正如Ashwini Chaudhary所指出的,这个问题很容易用一个deque解决,它允许从两端轻松弹出。你知道吗
虽然这个问题肯定可以用堆栈解决,但我想我有一个简单的迭代方法:
下面是一个测试:
结果是:
如果你想找更简单的方法。。。最简单的方法就是使用切片:
这方面有很多变化,主要是从末端开始迭代。你知道吗
从技术上讲,如果您是最佳的(处理一些巨大的回文,也许),您不需要迭代整个字符串,只需在中间相遇:
这就接近你要做的事情了,一个德克从两端弹出。你知道吗
相关问题 更多 >
编程相关推荐