Baekjoonアルゴリズム | 1316番問題: グループ単語チェッカー

出典

https://www.acmicpc.net/problem/1316

問題

Baekjoon Online Judgeの1316番問題、グループ単語チェッカーを解きます。

入力

正確な入力形式と制約は元の問題文に従います。

出力

問題で求められる答えを出力します。

サンプル入力 1

3 happy new year

サンプル出力 1

3

サンプル入力 2

4 aba abab abcabc a

サンプル出力 2

1

サンプル入力 3

5 ab aa aca ba bb

サンプル出力 3

4

サンプル入力 4

2 yzyzy zyzyz

サンプル出力 4

0

サンプル入力 5

1 z

サンプル出力 5

1

アルゴリズム分類

  • 実装
  • 文字列

解説

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;

public class Main {

    public static void main(String[] args) throws IOException {
        try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {

            final int n = Integer.parseInt(br.readLine());

            int count = n;
            for (int i = 0; i < n; i++) {
                String line = br.readLine();

                Set set = new HashSet<Character>();
                for (int j = 0; j < line.length(); j++) {

                    if (j != 0 && line.charAt(j) == line.charAt(j - 1)) {
                        continue;
                    }

                    char b = line.charAt(j);
                    if (set.contains(b)) {
                        count--;
                        break;
                    }
                    set.add(b);
                }
            }

            System.out.println(count);
        }
    }
}