Ruby paizaレベルアップ問題集(文字列の出力2)

paizaラーニング(初心者〜中級者向けのプログラミング学習サービス)の問題集をやってみる。

Ruby paizaレベルアップ問題集(文字列の出力1) - No Solution for Life

paiza.jp

共通ルール

入力

  • 入力値最終行の末尾に改行が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? で判定できる。文字の場合は「辞書順」の比較になり、大文字のAZが先で、小文字のazが後になる。

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