競技プログラミングでの小さな気づきをメモ。
問題はこちら。
文字列が与えられるので、連続する文字と文字数を出力しなさいという問題。
例えば、'aabbbaad' は 'a2b3a2d1' と出力する必要があります。
僕の最初の回答がこちら。
処理内容を説明すると、文字列を走査して、その結果をconverted_strという変数に格納しています。
一方で、ある気付きを得たあとの回答がこちら。
(急にRubyですみません…)
後者の回答では、converted_strのような変数を用意していません。
文字列を操作しながら、その都度その結果を出力しているのです。改行を挟まないので、あたかも1行の出力のように見えます。
どこかにメモして最後に出力するのではなく、毎度出力すればいいよね。という考えです。
この方法を使うことで、ムダな変数を1つ定義せずに済みます。メモリを節約することができるのです。
…もちろん、他の方の回答を見て知りましたが。