SRM 649 Div. 1 Easy: Decipherability

コード

import java.util.Arrays;

public class Decipherability {

	public String check(String s, int K) {
		if (s.length() == K) {
			return "Certain";
		}

		// 連続した文字列が存在するかどうか
		char[] c = s.toCharArray();

		// アルファベットが直前にどこに出てきたか
		int[] memo = new int[26];
		Arrays.fill(memo, -1);
		for (int i = 0; i < c.length; i++) {
			if (memo[(int) (c[i] - 'a')] == -1) {
				memo[(int) (c[i] - 'a')] = i;
			} else if (i - memo[(int) (c[i] - 'a')] <= K) {
				return "Uncertain";
			} else {
				memo[(int) (c[i] - 'a')] = i;
			}
		}

		return "Certain";
	}

}