From 1902800fd5e143cd90a046e5829421a1787aabd8 Mon Sep 17 00:00:00 2001 From: Daniel <59575049+lemoentjiez@users.noreply.github.com> Date: Mon, 12 Dec 2022 16:36:00 +0200 Subject: [PATCH] Update palindrome.py --- LabMD_2/palindrome.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/LabMD_2/palindrome.py b/LabMD_2/palindrome.py index 8b13789..033fb5a 100644 --- a/LabMD_2/palindrome.py +++ b/LabMD_2/palindrome.py @@ -1 +1,24 @@ +def kmp_algorithm(string): + n = len(string) + lps = [None] * n + l, lps[0], i = 0, 0, 1 while i < n: + if string[i] == string[l]: + l += 1 lps[i] = l + i += 1 else: + if l != 0: + l = lps[l-1] + else: + lps[i] = 0 i += 1 return lps + +def minadded(string): + revstr = string[::-1] + big_str = string + '$' + revstr + lps = kmp_algorithm(big_str) + return len(string) - lps[-1] + + +s = input() +nr = minadded(s) +ans = s[-nr:] + s +print(ans)