練習(SRMs 1 145 DIV 2 200)

SRMs 1 145 DIV2 200

英語難しい。

問題を読む為の英単語

単語 意味
dithering ディザリング ※1
determine 決心する
upper 高い方
surround 取り巻く

問題概要

入力:ディザリング文字列
: スクリーン
出力:ディザリング文字の数

スクリーン内のディザリング文字列の数を解答せよ。

例示

"BW"
{"BBBBBBBB",
"BBWBWBWB",
"BWBWBWBB",
"BBWBWBWB",
"BWBWBWBB",
"BBBBBBBB"}
Returns: 48

提出コード(C#)

class ImageDithering
{
	public static int count(string dithered, string[] screen){
		int cnt = 0;
		for (int i = 0; i < dithered.Length; i++) {
			for (int j = 0; j < screen.Length; j++) {
				for (int k = 0; k < screen [j].Length; k++) {
					int cmp = (dithered.Substring (i,1)).CompareTo (screen [j].Substring (k,1));
					if (cmp == 0) {
						cnt++;
					}
				}
			}
		}
		return cnt;
	}
}

よく使いそうなコード

1.特定の位置の文字列を指定した文字数分取得

文字列.Substring (位置,文字数)

2.文字列比較

文字列A.CompareTo(文字列B)

0であれば同値

その他

※1 使用可能な色数が少ない環境で中間色を表現するために、表示可能な色を組み合わせて表示すること。