2016中国大学生程序设计竞赛 - 网络选拔赛 1011 Lweb and String

题意

给出一串字符,字符可以任意映射到一个数字,问能构成的最长上升子序列个数是。

思路

因为是任意映射,所以最长上升子序列的长度就是字符的种类数。统计一下就好了。

代码

#include 
using namespace std;
const int maxn = 1e5+10;
const int mod = 1e9+7;
typedef long long ll;
char str[maxn];
bool ap[27];
int main(){
    int T,kas = 1;;
    scanf("%d", &T);
    while(T --){
        memset(ap,0,sizeof ap);
        scanf("%s", str);
        int len = strlen(str);
        for(int i = 0 ; i < len ; i ++){
            ap[str[i]- 'a'] = true;
        }
        int ans = 0;
        for(int i = 0 ; i < 27 ; i ++){
            ans+= int(ap[i]);
        }
        printf("Case #%d: %d\n",kas ++,ans);
    }
    return 0;
}

你可能感兴趣的:(题解)