paizaラーニング(初心者〜中級者向けのプログラミング学習サービス)の問題集をやってみる。
Ruby paizaレベルアップ問題集(文字列の出力1) - No Solution for Life
共通ルール
入力
- 入力値最終行の末尾に改行が1つ入ります。
- 文字列は標準入力から渡されます。
出力
- 最後は改行し、余計な文字、空行を含んではいけません。
3. アルファベットの順番 (paizaランク D 相当)
英大文字の文字列が入力されます。
文字列の先頭1文字が、末尾1文字よりもアルファベット順で先に出現するならば、"true"を出力し、そうでなければ"false"を出力してください。入力される値
1行の文字列が入力されます。期待する出力
"true"または"false"を出力してください。条件
・最初のアルファベットは、最後のアルファベットと異なる文字
・文字列は半角英大文字で構成される
・1 ≦ (文字列の長さ) ≦10
入力例1
GINO
出力例1
true
自分の解答
str = gets.chomp puts str[0] < str[-1]
4. アルファベット探し (paizaランク C 相当)
1行目の英大文字 X から、2行目の英大文字 Y の範囲に3行目のアルファベット C が含まれていれば"true", そうでなければ"false"と出力してください。 X が Y よりもアルファベット順で後ろになる場合(X = 'G', Y = 'F'のときなど)も"false"と出力してください。
入力される値
X
Y
C期待する出力
出力は、 "true" または "false" のどちらかです。条件
・X, Y, Cはそれぞれ英大文字です。
入力例1
A D C
出力例1
true
自分の解答
ary = [] 3.times do ary << gets.chomp end puts (ary[0]..ary[1]).include?(ary[2])
Range#include? (Ruby 2.7.0 リファレンスマニュアル)
文字列も include?
で判定できる。文字の場合は「辞書順」の比較になり、大文字のA
〜Z
が先で、小文字のa
〜z
が後になる。
irb(main):001:0> (1..10).include?(5) => true irb(main):002:0> (1..10).include?(50) => false irb(main):003:0> ("a".."g").include?("e") => true irb(main):004:0> ("a".."g").include?("E") => false irb(main):005:0> ("a".."z").include?("E") => false irb(main):006:0> ("A".."z").include?("E") => true