文字列Sが与えられます。Sがpaiza
と一致する場合はYES
を、一致しない場合はNO
を出力してください。
という問題についての解説
目次
間違っていたコード
input_line = gets
if input_line == "paiza"
puts "YES"
else
puts "NO"
end
この問題の説明には入力値最終行の末尾に改行が1つ入ります。文字列は標準入力から渡されます。
という文があり、これを見落としていた。そのため、if文のところでこのままのコードだとテストが落ちてしまう。
全てのテストが通るコード
input_line = gets.chomp
if input_line == "paiza"
puts "YES"
else
puts "NO"
end
これでテストは通る。改行が末尾に含まれるみたいだからこれを取り除いてやれば良い。そのために、chompメソッドを使用する。ただ、これは文字列に有効なメソッドであり、数値には有効ではない。
String#chomp (Ruby 3.4 リファレンスマニュアル)
self の末尾から rs で指定する改行コードを取り除いた文字列を生成して返します。 ただし、rs が “\n” ($/ のデフォルト値) のときは、 実行環境によらず “\r”, “\r\n”, “…