题解 | #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-08 22:25
门头沟学院 Java
从零开始的转码生活:这hr不会打开手机不分青红皂白给所有人群发这句话,过一会再给所有人再发一遍,这肯定会有重复的,不管,再过一会再发一遍
点赞 评论 收藏
分享
06-13 10:15
门头沟学院 Java
想去夏威夷的大西瓜在...:我也是27届,但是我现在研一下了啥项目都没有呀咋办,哎,简历不知道咋写
点赞 评论 收藏
分享
评论
5
2
分享

创作者周榜

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