题解 | #abb字串#

abb

http://www.nowcoder.com/practice/0a8bbf8b9b5b4280957849ef4f240f07

cnt[i] 表示在索引为0~i-1 之间小写字母出现的次数,i-cnt[i]表示除了这个字符以外其他字符的数量,这样我们就可以统计出像 ab这样的字符串有多少个 使用dp[i]记录 0~i-1 之间 以字符s[i]结尾的字符串有多少

alt

#include<stdio.h>

int main()
{
    long long n,res=0;
    long long cnt[26]={0},dp[26]={0};
    scanf("%lld",&n);
    getchar();
    char *s=(char*)malloc(n+1);
    gets(s);
    
    for(int i=0;i<n;++i)
    {
        res+=dp[s[i]-'a'];
        dp[s[i]-'a']+=i-cnt[s[i]-'a'];
        ++cnt[s[i]-'a'];
    }
    
    printf("%lld",res);
    free(s);
    return 0;
}
全部评论

相关推荐

06-26 15:33
青岛工学院 Java
积极的秋田犬要冲国企:他现在邀请我明天面试
点赞 评论 收藏
分享
05-03 12:45
西南大学 Java
nsnzkv:你这项目写的内容太多了,说实话都是在给自己挖坑,就算简历过了,后面面试也难受
点赞 评论 收藏
分享
评论
5
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务