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.
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.
Print maximum number of elements in pretty set of positions for string s.
11 aaaaBaabAbA
2
12 zACaAbbaazzC
3
3 ABC
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;
}

本文介绍了一个算法问题,即在一个由大小写字母组成的字符串中找出最长的连续小写字母子串,使得这些字母都是不同的,并且该子串之间没有大写字母隔开。文章通过示例解释了问题并提供了解决方案。
402

被折叠的 条评论
为什么被折叠?



