我想写一个递归函数,它将回文作为一个字符串,然后打印出一个特定的可视化表示(见图)。任何人都可以告诉我如何在每个打印行的开头包含空格,以便整个打印输出“镜像”?我完全扭曲了。 非常感谢您提前帮助我!
这就是我的印刷品的样子
这就是我希望它看起来像
这是我打印输出的代码:
def print_palindrome(p):
if len(p) <= 1:
print(p)
else:
print(len(p)*" " + p[0] + len(p)*" " + p[-1])
return print_palindrome(p[1:-1])
print_palindrome("murder for a jar of red rum")
答案 0 :(得分:0)
我会在递归函数中添加一个计数器来指示你所在的行。否则该函数将如何知道在开始时要打印多少空格?
以下是我对您的代码的修改:
def print_palindrome(p):
print_palindrome_rec(p, 0)
def print_palindrome_rec(p, i):
if len(p) <= 1:
print(i*" " + p)
else:
print(i*" " + p[0] + (len(p)-2)*" " + p[-1])
print_palindrome_rec(p[1:-1], i+1)
print_palindrome("murder for a jar of red rum")