CodeForces

题意:已知长度为n的字符串,求最大的位置集合,使集合内的每个位置所对应的都是小写字母且各不相同,而且相邻位置间无大写字母。

#include<bits/stdc++.h>
#define Min(a, b) ((a < b) ? a : b)
#define Max(a, b) ((a < b) ? b : a)
typedef long long LL;
typedef unsigned long long ULL;
const int INT_INF = 0x3f3f3f3f;
const int INT_M_INF = 0x7f7f7f7f;
const int dr[] = {0, 0, -1, 1, -1, -1, 1, 1};
const int dc[] = {-1, 1, 0, 0, -1, 1, -1, 1};
const int MOD = 1e9 + 7;
const double pi = acos(-1.0);
const double eps = 1e-8;
const int MAXN = 200 + 10;
const int MAXT = 500 + 10;
using namespace std;
char s[MAXN];
set<char> st;
int main(){
    int n;
    scanf("%d", &n);
    scanf("%s", s);
    int ans = 0;
    for(int i = 0; i < n; ++i){
        if(s[i] >= 'A' && s[i] <= 'Z'){
            ans = max(ans, (int)st.size());
            st.clear();
        }
        else{
            st.insert(s[i]);
        }
    }
    ans = max(ans, (int)st.size());
    printf("%d
", ans);
    return 0;
}

  

原文地址:https://www.cnblogs.com/tyty-Somnuspoppy/p/7615453.html