SRM148 DIV2 600

問題を読む為の英単語

単語 意味
keycaps キー配置
decipher 解読する

問題概要

入力:タイプ文字列とキースイッチ
キースイッチは{"A:B","C:D"}というような形式で与えられ、
例えば始めのキースイッチが押された場合、
タイプ文字列にAがあればBに、BがあればAに変換する。

与えられたキースイッチを順に押し、最後まで押し終わったときの、
タイプ文字列の結果を出力せよ。

例示

"ABCDE"
{"A:B","B:C","C:D","D:E","E:A"}
Returns: "AEBCD"

回答コード

class CeyKaps
{
	public string decipher(string typed, string[] switches){
		string ret = typed;
		for (int i =0; i < switches.Length; i++) {
			string[] d_switch = switches [i].Split (':');
			ret = ret.Replace (d_switch [0], "$");
			ret = ret.Replace (d_switch [1], "%");
			ret = ret.Replace ("$", d_switch [1]);
			ret = ret.Replace ("%", d_switch [0]);
		}
		return ret;
	}
}

よく使いそうなコード

文字列の置換

D = A.Replace("B","C");

Aの文字列からBをCに置換した結果をDに格納する。