Codeforce B. Polycarp and Letters

B. Polycarp and Letters
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

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
Note

In the first example the desired positions might be 6 and 8 or 7 and 8. Positions 6 and 7 contain letters 'a', position 8 contains letter 'b'. The pair of positions 1 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 choose pretty set consisting of three elements.

In the third example the given string s does not contain any lowercase letters, so the answer is 0.

此题求2个大写字母间小写字母不同的个数;

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;

int n,m,a[128],maxx,ans;
char s[1008];

int main(){
    scanf("%d",&n);
    scanf("%s",s);
    maxx=0; ans=0;
    for(int i=0;i<n;i++){
        if(s[i]>='A'&&s[i]<='Z'){
            memset(a,0,sizeof(a));
            ans=max(ans,maxx);
            maxx=0;
        }else{
            if(!a[s[i]]){
                a[s[i]]=1;
                maxx++;
            }
        }
    }
    ans=max(maxx,ans);
    printf("%d",ans);
}
原文地址:https://www.cnblogs.com/WQHui/p/7593812.html