问python的一道题

请问这题应该如何思考 ?
一点思路都没有:(


"""
给定一个字符串str,
通过在初始字符串的末尾添加字符使其成为回文,
找到可能最短的字符串。
对于str=“abcdc”,输出应为“abcdcba”。
"""
def build_palindrome(s):
    pass

print(build_palindrome("abcdc"))
#"abcdcba"
print(build_palindrome("ababab"))
#"abababa"

我提供一个思路:
一个字符串和它的逆序字符串肯定是回文,所以,将字符串的逆序依次附加到原始字符串上,判断是否为回文即可。

def build_palindrome(s):
    r = s[::-1]
    length = len(r)
    for i in range(1,length+1):
        s0 = s + r[-i:]
        if s0 == s0[::-1]:
            print(s0)
            break
def build_palindrome(strng):
    n = 0
    while strng[n:] != strng[n:][::-1]: n += 1
    return strng + strng[:n][::-1]