题目如下:
python实现
class SequenceStack:
def __init__(self):
self.MaxStackSize = 20
self.s = [None for x in range(0,self.MaxStackSize)]
self.top = -1
'''判断栈是否为空'''
def IsEmptyStack(self):
if self.top == -1:
iTop = True
else:
iTop = False
return iTop
'''进栈'''
def PushStaxk(self,x):
if self.top < self.MaxStackSize-1:
self.top = self.top+1
self.s[self.top] = x
else:
print("栈满")
return
'''出栈'''
def PopStack(self):
if self.IsEmptyStack == True:
print("栈为空")
return
else:
iTop = self.top
self.top = self.top-1
return self.s[iTop]
'''遍历栈内元素'''
def StackTraverse(self):
if self.IsEmptyStack == True:
print("栈为空")
return
else:
for i in range(0,self.top + 1):
print(self.s[i],end = ' ')
class TestPD():
def plalindrome(self,str):
ss1 = SequenceStack()
ss2 = SequenceStack()
for i in str:
ss1.PushStaxk(i)
print("栈ss1内的元素为:",end = ' ')
ss1.StackTraverse()
for j in str[::-1]:
ss2.PushStaxk(j)
print("\n栈ss2内的元素为:",end = ' ')
ss2.StackTraverse()
while ss1.IsEmptyStack()!= True:
if ss1.PopStack() != ss2.PopStack():
print("\n",str,"不是回文单词")
return
print("\n",str,"是回文单词")
TPD = TestPD()
word = input("请输入一个英文单词:")
TPD.plalindrome(word)
结果如下: