Polycarp loves lowercase letters and dislikes uppercase ones. Once he got a strings consisting only of lowercase and uppercase Latin letters.
Let A be a set of positions in the string. Let's call itpretty if following conditions are met:
- letters on positions from A in the string are all distinct and lowercase;
- there are no uppercase letters in the string which are situated between positions fromA (i.e. there is no such j that s[j] is an uppercase letter, anda1 < j < a2 for somea1 and a2 from A).
Write a program that will determine the maximum number of elements in a pretty set of positions.
The first line contains a single integer n (1 ≤ n ≤ 200) — length of strings.
The second line contains a string s consisting of lowercase and uppercase Latin letters.
Print maximum number of elements in pretty set of positions for strings.
11 aaaaBaabAbA
2
12 zACaAbbaazzC
3
3 ABC
0
In the first example the desired positions might be 6 and8 or 7 and 8. Positions 6 and 7 contain letters 'a', position8 contains letter 'b'. The pair of positions1 and 8 is not suitable because there is an uppercase letter 'B' between these position.
In the second example desired positions can be 7,8 and 11. There are other ways to choosepretty set consisting of three elements.
In the third example the given string s does not contain any lowercase letters, so the answer is0.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n,i,j,b[130] = {0},sum = 0,num;
char a[210];
scanf("%d",&n);
scanf("%s",a);
for(i = 0;i < n;i++)
{
if(a[i] >= 97&&a[i] <= 122)
{
for(j = i;j < n;j++)
{
if(a[j] != a[i]&&a[j] >= 97&&a[j] <= 122)
{
num = a[i];
b[num]++;
num = a[j];
b[num]++;
}
else if(a[j] != a[i])
break;
}
}
}
for(i = 97;i <= 122;i++)
{
if(b[i] != 0)
sum++;
}
printf("%d\n",sum);
return 0;
}