zoukankan      html  css  js  c++  java
  • 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);
    }
  • 相关阅读:
    C++中的乱七八糟问题
    在Win环境下配置java的环境进行开发步骤
    常用软件破解
    关于QT建立项目中遇到的相关问题的处理办法
    QT5.4.0安装以及与VS2010整合安装---64bit操作系统解决方案
    STL容器之一vector
    STL
    三种初步简易的方法求解数值问题 of C++
    Visual Studio 简单使用常识操作
    江城感怀---诗一首
  • 原文地址:https://www.cnblogs.com/WQHui/p/7593812.html
Copyright © 2011-2022 走看看