文字列Sが「強い回文」の条件に合っているかどうかを判定する問題です。
提出
s = input()
n = len(s)
s1 = s[:(n-1)//2]
s2 = s[(n+3)//2-1:n]
if s != s[::-1] or s1 != s1[::-1] or s2 != s2[::-1]:
print("No")
else:
print("Yes")
スライス機能を用いて文字列を取得し、強い回文の条件と合致しているか、if文で判定しています。
s[::-1]で文字列を反転できます。
実際は、sが回文であり、s1も回文であれば、必然的にs2も回文になるので、最後の「s2 != s2[::-1]」はなくても問題ないです。
スライス機能
スライスを用いてインデックスを指定すると、特定の範囲の文字列を取得することができます。
インデックスは0から始まることに注意です。
開始インデックスから終了インデックスの一つ前まで取得します。
s = "atcoder"
print(s[2:5])
# > "cod"