Rubyで競プロを解くときによく使うんだけど、よく忘れるのでメモする📝
一文字ずつ文字列を処理する
chars
メソッドを使用すると配列を返す。これを each
するだけで一文字ずつ比較などができる。
'abcde'.chars => ["a", "b", "c", "d", "e"]
標準出力を式の戻り値によって切り替える
puts
に三項式を渡せば切り替えることができる。
puts rand * 10 > 5 ? 'high' : 'low' # low
インクリメント
Rubyは ++
ができないので +=
を使用する。よく逆に書いてしまう。
num += 1
初期化した配列を作る
new
の第一引数に、要素の数、第二引数に初期値を渡す。
Array.new(2,0) => [0, 0]
標準入力のn行を配列に入れる
これは他の方法で代用するのでいつも使用しないけどメモしておく。 while
の条件を line = gets
のように書いておくと標準入力の1行が line
に入るので、それを Array#push
してあげて追加していく。
lines = [] while line = gets lines.push(line.chomp) end
0からnまでindexをアップしていく
Integer#upto
を使う。 Range
オブジェクトを使うより便利。でもよく忘れる。逆は downto
0.upto(2) do |i| p i end
特定の文字列が入っているか確認する
正規表現を使用する。 a
にdogかcatが含まれていればtrueになる。
a =~ /(dog|cat)/
配列を検索して、その要素の位置を取得する
指定した配列の次の要素をいじるのとかで必要になるやつ。 Array#index
を使用する。
a = [1,2,3] a.index(2) => 1
もっといいやつとか間違ってたら教えてください。