Я хочу проверить, является ли определенное слово палиндром или нет. Это код Python, который я написал, чтобы проверить. Но это не дает мне правильного результата. < /P>
class class < /p>
class Stack:
def __init__(self):
self.items=[]
def isEmpty(self):
return self.items==[]
def push(self,data):
self.items.append(data)
def size(self):
return len(Self.items)
def show(self):
print (self.items)
def peek(self):
return self.items[len(self.items)-1]
def pop(self):
assert not self.isEmpty()
return self.items.pop()
< /code>
Программа < /p>
a=input("Enter a word: ")
s=Stack();
for i in a:
s.push(i);
while s is None:
list1 = s.pop();
if(list1 == a):
print("The word is a palindrome");
else:
print("It's not a palindrome");
print(a);
print(list1);
< /code>
Я получаю эту ошибку. < /p>
RESTART: C:/Users/Dil/AppData/Local/Programs/Python/Python36-32/Tutorials/checkpalindrome.py
Enter a word: kayak
Traceback (most recent call last):
File "C:/Users/Dil/AppData/Local/Programs/Python/Python36-32/Tutorials/checkpalindrome.py", line 35, in
if(list1 == a):
NameError: name 'list1' is not defined
< /code>
Но если я изменил свою программу на следующее: < /p>
a= input("Enter a word: ")
s=Stack();
for i in a:
s.push(i);
list1 = s.pop();
if(list1 == a):
print("The word is a palindrome");
else:
print("It's not a palindrome");
print(a);
print(list1);
< /code>
Это даст мне выход следующим образом: < /p>
>>>
RESTART: C:/Users/Dil/AppData/Local/Programs/Python/Python36-32/Tutorials/checkpalindrome.py
Enter a word: kayak
It's not a palindrome
kayak
k
>>>
Подробнее здесь: https://stackoverflow.com/questions/462 ... sing-stack
Проверка палиндрома в Python с использованием стека ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение