使用 Deque 检查给定字符串是否为回文
Check whether a given string is palindrome using Deque
我写了一个 python 代码来检查给定的字符串是否是回文。但是,代码有问题。对于每个字符串 returns True,即它是一个回文。
我的代码有什么问题?
这是我的代码:
class Deque:
def __init__(self):
self.items=[]
def empty(self):
return self.items==[]
def push_back(self,item):
self.items.append(item)
def push_front(self,item):
self.items.insert(0,item)
def pop_back(self):
self.items.pop()
def pop_front(self):
self.items.pop(0)
def back(self):
return self.items[-1]
def front(self):
return self.items[0]
def size(self):
return len(self.items)
def at(self,index):
return self.items[index]
def palcheck(string):
D=Deque()
for char in string:
D.push_back(char)
stillEqual=True
while D.size() >1 and stillEqual:
first=D.pop_front()
last=D.pop_back()
if first!=last:
stillEqual=False
return stillEqual
print(palcheck("lsknfjbdf"))
要测试一个字符串是否是回文,很简单:
def ispalindrome(s):
return s == s[::-1]
您的 pop
方法没有显式地 return 任何东西 - 因此它们隐式地 return None
.
因此,if first!=last:
将始终执行 if None!=None:
。
只需将弹出方法更改为 return 弹出的值:
def pop_back(self):
return self.items.pop()
def pop_front(self):
return self.items.pop(0)
我写了一个 python 代码来检查给定的字符串是否是回文。但是,代码有问题。对于每个字符串 returns True,即它是一个回文。 我的代码有什么问题?
这是我的代码:
class Deque:
def __init__(self):
self.items=[]
def empty(self):
return self.items==[]
def push_back(self,item):
self.items.append(item)
def push_front(self,item):
self.items.insert(0,item)
def pop_back(self):
self.items.pop()
def pop_front(self):
self.items.pop(0)
def back(self):
return self.items[-1]
def front(self):
return self.items[0]
def size(self):
return len(self.items)
def at(self,index):
return self.items[index]
def palcheck(string):
D=Deque()
for char in string:
D.push_back(char)
stillEqual=True
while D.size() >1 and stillEqual:
first=D.pop_front()
last=D.pop_back()
if first!=last:
stillEqual=False
return stillEqual
print(palcheck("lsknfjbdf"))
要测试一个字符串是否是回文,很简单:
def ispalindrome(s):
return s == s[::-1]
您的 pop
方法没有显式地 return 任何东西 - 因此它们隐式地 return None
.
因此,if first!=last:
将始终执行 if None!=None:
。
只需将弹出方法更改为 return 弹出的值:
def pop_back(self):
return self.items.pop()
def pop_front(self):
return self.items.pop(0)