解説

次の順番で、問題を解いていきます。

  1. iji\neq j となる 11 以上 NN 以下の i,ji, j を選びます。

    • 22 重ループで、異なる 22 つの文字列 SiS_iSjS_j を選択します。

  2. SiS_iSjS_j を連結した文字列 T=Si+SjT=S_i+S_j を作ります。

    • '\0' は文字列の終端を示すため、これを追加して連結した文字列を終わらせます。

  3. TT が回文かどうかを判定するために、先頭の文字と末尾の文字から 11 文字ずつ一致するか判定します。

    • この比較を T2\displaystyle\frac{|T|}{2} 回だけ行い、どこかで一致しない場合は回文ではないと判定します。

上記の 1,2,31,2,3 を行い TT が一度でも回文をあれば Yes、そうでなければ No を出力します。

解答例

解答例 (C)

解答例(C++)

解答例 (Python)

別解

C++では 下記の解答例のように reverse を用いて文字列を反転させることが出来ます。
reverse についての詳細は、公式ドキュメントをご覧ください。

別解の解答例 (C++)

Pythonでは、下記の解答例のようにスライスを用いて文字列を反転させることが出来ます。
スライスについての詳細は、公式ドキュメントをご覧ください。

別解の解答例 (Python)