Menu
Coddy logo textTech

パターン・ファインダー

CoddyのRubyジャーニー「基礎」セクションの一部 — レッスン 87/88。

challenge icon

チャレンジ

簡単

入力から文字列を読み込み、その文字列全体を構成する最小の繰り返しのパターンを見つけてください。

有効なパターンは以下の条件を満たす必要があります:

  • パターンの長さが、文字列の全長の約数であること(割り切れること)
  • 適切な回数繰り返したときに、元の文字列を正確に再現すること

文字列が繰り返しのパターンで構成されている場合は、その最小のパターンを出力してください。繰り返しのパターンが存在しない場合は、元の文字列を出力してください。

パターンが機能するかどうかを確認するには、文字列の乗算を使用できます。pattern * count は、パターンを繰り返して新しい文字列を作成します。

例えば、入力が abcabcabc の場合、出力は以下のようになります:

abc

入力が xyxyxyxy の場合、出力は以下のようになります:

xy

入力が aaaa の場合、出力は以下のようになります:

a

入力が hello の場合、出力は以下のようになります:

hello

入力が abcdef の場合、出力は以下のようになります:

abcdef

自分で試してみよう

# 入力文字列を読み込む
s = gets.chomp

# TODO: 以下にコードを書いてください
# 文字列全体を構成する最小の繰り返しパターンを見つける
# ヒント: 文字列の長さを割り切ることができるパターンの長さを確認する
# 文字列の乗算 (pattern * count) を使用して、パターンが機能するかどうかを確認する

result = s  # これをあなたの解決策に置き換えてください

# 結果を出力する
puts result

基礎のすべてのレッスン