もう一題をやった。Palindrome chain length
回文に関する計算問題です。 回文とは、文字列を真ん中で割って、左辺と右辺が反転的に対称している文字列のこと。 例えば、「あいういあ」が回文であり、「あいうえお」が回文では無い。 数字の場合も同じく、5,44,171,4884が回文であり、43,194,4773が回文ではない。
そして、今回の問題は、引数の数字に対し、特定な計算方法で、何回計算したら回文になるかを算出する。 ここでの特定な計算方法は、「自分の数字の各桁を反転し、元の数字と足し算する」のこと。
例えば、87が与えられ、4回の計算で回文数字になったため、戻り値を4にする。
|
|
ここで難しいのは、数字をどうやって反転するか。 いろいろ調べた結果、意外と簡単でした。しかも一行で済む。Python で文字列反転
|
|
このような書き方は、「文字列の末尾から一つずつ遡って先頭まで要素を取り出す」の操作となる。
そしてさっきの問題に対し自分の答えは
|
|
いや〜便利だな〜これで今日もよく寝れる〜