【发布时间】:2015-01-18 17:08:30
【问题描述】:
我必须编写一个程序来测试输入字符串是否为回文。回文是一个单词序列,其读法与反向序列相同,例如单词“noon”。 方案要求如下:
- 您必须使用堆栈
- 程序应忽略除字母以外的所有字符。
- 文件输入
- 测试单个单词和完整的句子
- 应该有一些真假结果。
到目前为止,这是我的代码:
f = open('myTextFile.txt', "r")
line = f.readline()
while line:
print(line)
line = f.readline()
exclude = set("-")
line = ''.join(ch for ch in line if ch not in exclude)
exclude = set(",")
line = ''.join(ch for ch in line if ch not in exclude)
exclude = set(".")
line = ''.join(ch for ch in line if ch not in exclude)
exclude = set(" ")
line = ''.join(ch for ch in line if ch not in exclude)
f.close()
我的问题是接下来要做什么,我有点迷茫,我删除了所有多余的字符,我应该将每一行放入一个列表中以单独使用它们吗?你能指引我正确的方向吗?
【问题讨论】:
-
执行此操作的经典方法是使用两个指针并检查每一对字符,直到它们指向同一位置或相互传递。您无需担心剥离标点符号;你可以让你的
incrementPointer方法跳过非字母字符。
标签: python stack palindrome