読者です 読者をやめる 読者になる 読者になる

るびまゴルフ第7回をやってみた

一行の英単語が標準入力から与えられて、その末尾から 1Byte ずつ伸ばしていく形で文字数分の行を出力して下さい。具体的には

hoge

という入力に対して

e
ge
oge
hoge

と出力して下さい。入力は末尾に改行があるとしても無いとしても構いません。両方別々に解いていただいても良いですし、両方同時に解けるコードを考えていただくのも良いかと思います。入力の一行にはアルファベットや数値しか含まれないと仮定して良いことにします。例えば、入力末尾に改行が無いとすると

l=gets
l.size.times{|i|puts l[-i-1,i+1]}

が解答例となります。パーは 35Bytes とします。

Rubyist Magazine - るびまゴルフ 【第 7 回】

とりあえずパーの 35Bytes を超えたので晒してみる。

1.upto(gets.size){|i|puts$_[-i,i]}

34Bytes。行末に改行があると最初に余計な空行が出力される。ので、入力末尾に改行が無いと仮定。
何というか考え方が解答例の域を出ていない。もっと柔軟な発想が必要なんだ…!
プロがやればもう少し縮みそうだなーと思いつつ今の私にはこれが限界でした。