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

ハッシュの問題は終わったが、引き続きpaizaラーニング(初心者〜中級者向けのプログラミング学習サービス)の問題集をやってみることにした。

paiza.jp

共通ルール

入力

  • 入力値最終行の末尾に改行が1つ入ります。
  • 文字列は標準入力から渡されます。

出力

  • 最後は改行し、余計な文字、空行を含んではいけません。

1. 文字列の出力 (paizaランク D 相当)

3つの文字列が3行で入力されるので、入力された文字列をそのまま1行ずつ出力してください。

入力される値
A
B
C

期待する出力
入力された通りに出力してください。3行で入力されるので、出力も3行となります。

条件
A, B, C は、半角英数字からなる文字列
1 ≦ (文字列 A の長さ) ≦ 30
1 ≦ (文字列 B の長さ) ≦ 30
1 ≦ (文字列 C の長さ) ≦ 30

入力例1

kirishima
kuroda
rokumura

出力例1

kirishima
kuroda
rokumura

自分の解答

s = readlines
puts s

2. アルファベットの範囲の文字の出力 (paizaランク D 相当)

英大文字の文字列が入力されます。
この文字列の先頭1文字と末尾1文字で表される範囲に含まれる文字をすべて出力してください。
範囲とは、アルファベット順に並べた英大文字の列('A', 'B', 'C', ..., 'Z')について、先頭の文字の出現位置から末尾の文字の出現位置までの部分列のことです。
たとえば、先頭の文字が'G'で末尾の文字が'O'で表される範囲は、('G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O')となります。
出力はアルファベット順に表示し、1文字表示するたびに改行してください。

入力される値
1行の文字列が入力されます。

期待する出力
先頭の文字から末尾の文字までの間のアルファベットを、1文字ごとに改行して出力してください。

条件
・文字列の先頭の1文字は、末尾の1文字よりもアルファベット順で先に出現
・1 ≦ (文字列の長さ) ≦10

入力例1

GINO

出力例1

G
H
I
J
K
L
M
N
O

自分の解答

s = gets.chomp

(s[0]..s[-1]).each do |c|
  puts c
end

文字列は配列と同じように[]で文字を取り出すことができる。

配列のインデックス番号と同様 [0] から始まり、- をつけると後ろから取り出せる。[-1] だと末尾の文字、[-2] だと末尾から2番目の文字。

irb(main):001:0> str = "orange"
irb(main):002:0> str[0]
=> "o"
irb(main):003:0> str[1]
=> "r"
irb(main):004:0> str[-1]
=> "e"
irb(main):005:0> str[-2]
=> "g"