

Time Limit: 2 sec / Memory Limit: 1024 MB
配点 : 200 点
問題文
英小文字からなる長さ N の文字列 S が与えられます。 この文字列を一箇所で切断して、文字列 X と Y に分割します。 このとき、「X と Y のどちらにも含まれている文字」の種類数を最大化したいです。 文字列を切断する位置を適切に決めた際の「X と Y のどちらにも含まれている文字」の種類数の最大値を求めてください。
制約
- 2 \leq N \leq 100
- |S| = N
- S は英小文字からなる
入力
入力は以下の形式で標準入力から与えられる。
N S
出力
「X と Y のどちらにも含まれている文字」の種類数の最大値を出力せよ。
入力例 1
6 aabbca
出力例 1
2
S を先頭から 3 文字目と 4 文字目の間で切って X = aab
と Y = bca
に分割すると、「X と Y のどちらにも含まれている文字」は a
と b
です。
「X と Y のどちらにも含まれている文字」の種類数が 3 以上になることはないので、答えは 2 になります。
入力例 2
10 aaaaaaaaaa
出力例 2
1
どのように S を分割しても、「X と Y のどちらにも含まれている文字」は a
のみです。
入力例 3
45 tgxgdqkyjzhyputjjtllptdfxocrylqfqjynmfbfucbir
出力例 3
9
Score : 200 points
Problem Statement
You are given a string S of length N consisting of lowercase English letters. We will cut this string at one position into two strings X and Y. Here, we would like to maximize the number of different letters contained in both X and Y. Find the largest possible number of different letters contained in both X and Y when we cut the string at the optimal position.
Constraints
- 2 \leq N \leq 100
- |S| = N
- S consists of lowercase English letters.
Input
Input is given from Standard Input in the following format:
N S
Output
Print the largest possible number of different letters contained in both X and Y.
Sample Input 1
6 aabbca
Sample Output 1
2
If we cut the string between the third and fourth letters into X = aab
and Y = bca
, the letters contained in both X and Y are a
and b
.
There will never be three or more different letters contained in both X and Y, so the answer is 2.
Sample Input 2
10 aaaaaaaaaa
Sample Output 2
1
However we divide S, only a
will be contained in both X and Y.
Sample Input 3
45 tgxgdqkyjzhyputjjtllptdfxocrylqfqjynmfbfucbir
Sample Output 3
9