単語分析
CoddyのRubyジャーニー「ロジックとフロー」セクションの一部 — レッスン 54/56。
文字列、ハッシュ、Hash.new(0)、そしてEnumerableメソッドのすべてを一度に駆使する、独立したチャレンジです。
チャレンジ
中級入力として1行の文を読み込みます。それを分析して、以下の3行を出力してください。
- ユニークな単語の数(大文字小文字を区別せず、句読点を除去したもの)。繰り返される単語は1つとして数えます。
- 2回以上出現する単語(重複単語)をアルファベット順に並べ、
,で繋いだもの。該当するものがない場合は、(none)と出力してください。 - 回文(前から読んでも後ろから読んでも同じ単語、長さ2以上)をアルファベット順に並べ、
,で繋いだもの。該当するものがない場合は、(none)と出力してください。
処理を行う前に、各単語から .,!?:;"() の文字を取り除いてください。比較の際はすべて小文字に変換してください。
入力が Madam saw a racecar. Dad said hello hello to mom. の場合、出力は以下のようになります:
9
hello
dad, madam, mom, racecar自分で試してみよう
input = gets.chomp
# TODO: 分割、句読点の除去、小文字化を行い、以下を出力する:
# ユニークな単語数、繰り返される単語、回文(長さ2以上)
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。