【发布时间】:2020-11-08 07:27:56
【问题描述】:
我知道这个问题被问了很多,但我遇到的问题略有不同。这个任务要求我不要验证一个字符串是否是回文 - 但要验证一个字符串中有多少回文(返回为“int”)。这应该同时使用迭代函数和递归函数来完成,但是我在递归部分遇到了麻烦:(
作为参考,这是我的迭代函数代码:
def iterativePalindrome(str, n):
allPalindromes = [[0 for x in range(n)] for y in range(n)]
verify = [[False for x in range(n)] for y in range(n)]
for i in range(n):
verify[i][i] = True
for i in range(n - 1):
if (str[i] == str[i + 1]):
verify[i][i + 1] = True
allPalindromes[i][i + 1] = 1
for iterativeGap in range(2, n):
for start in range(n - iterativeGap):
end = iterativeGap + start;
if (str[start] == str[end] and verify[start + 1][end - 1]):
verify[start][end] = True
if (verify[start][end] == True):
allPalindromes[start][end] = (allPalindromes[start][end - 1] + allPalindromes[start + 1][end] + 1 - allPalindromes[start + 1][end - 1])
else:
allPalindromes[start][end] = (allPalindromes[start][end - 1] + allPalindromes[start + 1][end] - allPalindromes[start + 1][end - 1])
return allPalindromes[0][n - 1]
我只是很难将其转换为递归函数。感谢您提供任何和所有帮助!
【问题讨论】:
-
请提供您目前所写的内容
-
另外,请举例说明输入和预期结果。
-
老实说,到目前为止,除了解决这个问题的迭代版本之外,我真的没有写任何东西;-;但是,我可以提供输入和预期结果的示例!我们在课堂上给出的例子是“kayak”,这个字符串中回文数的预期结果是“2”!我希望这会有所帮助:)