このページについて
このページは、paiza ラーニング内に開設されているコンテンツ「レベルアップ問題集」で取り扱われているプログラミング課題について、独自の見解を述べたものです。
見解については、paizaラーニングの規約に基づき、許可されている範囲でのみ公開していますが、その内容については paiza とは一切関係なく、また paiza の立場を反映したものではありませんのでご注意ください。
挑戦する課題
レベルアップ問題集の文字列処理メニューから「文字列の連結 (paizaランク D 相当)」を取り上げます。
以下は、問題公開 Web ページからの引用です。
問題
与えられる文字列の数 N と、 N 個の文字列が与えられるので、それらを順に末尾に連結した文字列を出力してください。
例として、”abc”, “def”, “ghi” という順で文字列が与えられたとき、連結後の文字列は”abcdefghi” となります。
入力される値
1 2 3 4 |
N S_1 ... S_N |
- 1 行目で与えられる文字列の数 N が与えられます。
- 続く N 行で連結する文字列 S_i (1 ≦ i ≦ N) が与えられます。
期待する出力
N 個の文字列を順に後ろに連結した文字列を 1 行で出力してください。
考え方
N行の文字列を連続して読み込むには、 AnyIterator を使うと可能である。また、その結果を配列( Array)のイニシャライザに代入しているため、自動的に配列となる。従って、残りはそれらの文字列を連結する処理だけとなる。
配列に入った文字列の連結には joined() を使う。
最終行の判定は自動的に行われるため、何行読み込むかについては考える必要はない。
したがって、入力の1行目で与えられる「文字列の数N」については読み飛ばす。
解答例
1 2 3 4 5 |
// 行数については読み飛ばす。 _ = readLine()! // 複数行の文字列を配列に取り込み、joined() で連結する。 print(Array(AnyIterator { readLine() }).joined()) |