【CodeForces 672B】Different is Good

字符串所有子串要不同。求修改最少多少个字符。

因为只能是26个字母,显然大于26的不可能有答案,其它情况ans+=u[i]-1;u[i]是字母出现的次数。

#include<cstdio>
char s;
int n,u[30],ans;
int main(){
    scanf("%d ",&n);
    for(int i=0;i<n;i++){
        scanf("%c ",&s);
        u[s-'a']++;
    }
    if(n>26)printf("-1");
    else{
        for(int i=0;i<26;i++)
            if(u[i])ans+=u[i]-1;
         printf("%d",ans);
    }
}

 

  

posted @ 2016-07-31 16:28  水郁  阅读(266)  评论(0编辑  收藏  举报
……