题解 | #abb#

abb

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

#include <iostream>
using namespace std;

int main() {
    int n,i,word1[26]={0},word2[26]={0};
    long long sum=0;
    string s;
    cin>>n;
    cin>>s;
    for(i=0;i<n;i++)
    {
	  //保存小写字符个数
        word1[s[i]-'a']++;
    }
    for(i=n-1;i>=0;i--)
    {
        word2[s[i]-'a']++;
	  //反向计入,当该字符数超过1,则用该字符数-1再乘上前面所有不为该字符的数量
	  //意为将该字符确立为abb型中第二位
        sum+=(word2[s[i]-'a']-1)*(i-word1[s[i]-'a']+word2[s[i]-'a']);
    }
    cout<<sum;
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务