Polycarp loves lowercase letters and dislikes uppercase ones. Once he got a string s consisting only of lowercase and uppercase Latin letters.
Let A be a set of positions in the string. Let's call it pretty 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 from A (i.e. there is no such j that s[j] is an uppercase letter, and a1 < j < a2 for some a1 and a2 from A).
Write a program that will determine the maximum number of elements in a pretty set of positions.
Input
The first line contains a single integer n (1 ≤ n ≤ 200) — length of string s.
The second line contains a string s consisting of lowercase and uppercase Latin letters.
Output
Print maximum number of elements in pretty set of positions for string s.
Examples
input
11 aaaaBaabAbA
output
2
input
12 zACaAbbaazzC
output
3
input
3 ABC
output
0
求连续的小写子母中,种类最多的是多少种。
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int a[150];
int b[150];
char q[202];
int main()
{
int n;
scanf("%d\n",&n);
for(int i=1;i<=n;i++)
{
scanf("%c",&q[i]);
}
int sum=0;
int su=0;
for(int i=1;i<=n;i++)
{
if(q[i]>='A'&&q[i]<='Z')
{
if(sum<su)sum=su;
su=0;
memset(b,0,sizeof(b));
}
else{
if(!b[(int)q[i]]){b[(int)q[i]]=1;su++;}
}
}
if(sum<su)sum=su;
printf("%d",sum);
return 0;
}