ブログ

読んで思い出す。忘れるために書く

テンプレート文字に沿って、文字列の合わない部分を「○」に置換する

teratail.com

回答して欲しい言語が Python だったので、こちらに書く(Ruby)

再帰楽しい

2つのテキストを渡して、条件に合致していれば両方を頭から食べてもらうイメージ

# frozen_string_literal: true

RESULT_TEXT = 'さて、私〇〇〇〇はこのたび〇〇〇〇〇〇〇〇〇〇代表取締役社長'
target_text = 'さて、私鈴木太郎はこのたびテクノロジー株式会社代表取締役社長'.chars
template = %w[さて、私  はこのたび 代表取締役社長].join.chars


def solve(target_text, template, ret = [])
  return ret.join if target_text.size.zero?

  template_char, target_char = [template, target_text].map(&:first)
  # pp [template_char, target_char].join(' ') # 動作イメージをつかむ出力

  char =
    if template_char.eql?(target_char)
      [template, target_text].map(&:shift).last
    else
      target_text.shift
      ''
    end

  solve(target_text, template, ret << char)
end

result = solve(target_text, template)
p result.eql?(RESULT_TEXT) # => true