如何使用递归函数打印回文的可视化表示?

时间:2017-10-26 10:18:02

标签: python-3.x recursion

我想写一个递归函数,它将回文作为一个字符串,然后打印出一个特定的可视化表示(见图)。任何人都可以告诉我如何在每个打印行的开头包含空格,以便整个打印输出“镜像”?我完全扭曲了。 非常感谢您提前帮助我!

这就是我的印刷品的样子

This is how my print looks like

这就是我希望它看起来像

And this is what I want it to look like

这是我打印输出的代码:

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")

1 个答案:

答案 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")