ruby 複数の文字を置換する

今日もまたアルゴリズム問題を解きました。

 

今日の問題はアルファベットと数字の置き換え規則があり、入力された文字列を規則に沿って置換して出力できるようにするというものです。

 

S 1
D 2
F 3
P 4
E 5
G 6

 

入力:FEG → 出力:356

 

これも初めは見当違いのことをしていて、hashを作って、入力された文字列を一文字ずつeach文で取り出して、その文字がhashのキーと一致しているかを確かめるという方向で考えていました。

 

しかし、hashのキーと文字が一致しているかを見ていく部分の書き方がわからず挫折しました。

 

調べていくと、rubyのgsubメソッドで正規表現を使って複数の文字を置換する方法がわかりました。置換する対象をハッシュで渡すことができるんですね。

 

```

s = gets
puts s.gsub(/S|D|F|P|E|G/"S"=>1"D"=>2"F"=>3"P"=>4"E"=>5"G"=>6)

```