字符串分值

简介: 从另一个方向看,可以考虑每个字符对结果的贡献值分别是多少;分别向左右两个方向查找该字符,向左找到该字符的位置记录为left(找不到就为0);向右找到该字符的位置记录为right(找不到就为字符串长度+1);向左找到的位置就是该字符做贡献的开始,向右找到的位置就是该字符做贡献的结束;不难推理出:每个字符的贡献值为(i-left)*(right-i) i为该字符的位置(从1开始计数);那样例来说:第一个a向左查找,left记为0,向右查找,right记为3,那么第一个a的贡献值为(1-0)*(3-1)==2;类推:(2-0)*(4-2)==4;(3-1)*(6-3)=
#include<cstring>
#include<map>
using namespace std;
const int N = 100100;
typedef long long ll;
char s[N];
ll idx;
int main()
{
    cin>>s+1;
    ll len=strlen(s+1);
    ll l=0,r=len+1;
    
    for(int i=1;i<=len;i++)
    {
        char c;
        c=s[i];
        ll right=len+1,left=0;
        
        //向左查找到与该字符相同的位置并记录 
        for(int ll=i-1;ll>=0;ll--)
        {
            if(s[ll]==c)
            {
                left=ll;
                break;
            }
        }
        //向右查找到与该字符相同的位置并记录 
        for(int rr=i+1;rr<=len;rr++)
        {
            if(s[rr]==c)
            {
                right=rr;
                break;
            }
        }
        //记录贡献值 
        idx+=(i-left)*(right-i);
    }
    cout<<idx;
    return 0;
}
相关文章
|
4月前
|
机器学习/深度学习 算法 测试技术
【组合数学 容斥原理 逆向思考】2930. 重新排列后包含指定子字符串的字符串数目
【组合数学 容斥原理 逆向思考】2930. 重新排列后包含指定子字符串的字符串数目
|
3月前
|
存储 人工智能 测试技术
每日练习之字符串——得分
每日练习之字符串——得分
15 0
|
4月前
|
Java
给定一个字符串数组,如何找到其中最长的回文子串?
【4月更文挑战第13天】Java动态规划解题:找出字符串数组中最长的回文子串。代码中,`longestPalindrome`函数遍历数组,利用`expandAroundCenter`方法检测以每个字符为中心的回文串并更新最长长度。当遍历完所有字符串后,返回最长回文子串。
28 6
|
4月前
|
人工智能 算法 测试技术
【字符串】【C++算法】828.统计子串中的唯一字符
【字符串】【C++算法】828.统计子串中的唯一字符
|
算法 Java
2015 蓝桥杯省赛部分题整理(九数组分数,牌型种数,串逐位和,循环节长度,打印菱形)
2015 蓝桥杯省赛部分题整理(九数组分数,牌型种数,串逐位和,循环节长度,打印菱形)
83 0
|
12月前
逆序一个字符串的每一组单词(不是倒叙)
整体思路: 1.先将整个字符串倒叙:i like china.->.anihc ekil i 2.将倒叙后的每一块单词再倒叙:.anihc->china. 想必大家都发现了,倒叙整个字符串和倒叙每一块是一样的,那么我们不妨写一个倒叙的函数在这里用reserve表示!
61 0
从排列字符串到排列序列:解析增减字符串匹配问题
题目要求根据给定的字符串 s,构造一个排列序列 perm,其中排列序列中的数字满足以下规则: 如果 perm[i] < perm[i + 1],则对应的字符为 'I'; 如果 perm[i] > perm[i + 1],则对应的字符为 'D'。 我们需要根据字符串 s 中的字符,构造满足上述规则的排列序列 perm。
50 0
|
C++
子串分值和
对于一个字符串 S,我们定义 S 的分值 f (S ) 为 S 中出现的不同的字符个数。
50 0
|
Python
统计字符串中不同字符个数问题
统计字符串中不同字符个数问题
100 0
|
算法
1304 字符串的相似度 后缀数组
1304 字符串的相似度 后缀数组
61 0