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"; } }