NISHIO Hirokazu[Translate]
PAST3F
PAST3F
F 与えられた文字候補から回文を作れるかどうか判定して作れるなら一つ出力する問題。「前からN文字目と後ろからN文字目のペア」は他のNと独立しているので分けて考えれば良い。候補の共通部分集合が空集合なら解なし。あれば適当に一つ選べば良い。長さが偶数が奇数かで最後の処理を分ける必要がある。
python
N = int(input()) M = [] for i in range(N): M.append(input()) answer = [] for i in range(N // 2): ok_chars = set(M[i]).intersection(M[N - 1 - i]) if not ok_chars: print(-1) break answer.append(list(ok_chars)[0]) else: if N % 2 == 0: print("".join(answer) + "".join(reversed(answer))) else: print("".join(answer) + M[N//2][0] + "".join(reversed(answer)))

"Engineer's way of creating knowledge" the English version of my book is now available on [Engineer's way of creating knowledge]

(C)NISHIO Hirokazu / Converted from [Scrapbox] at [Edit]