蓝桥杯 子串分值 递推

思路: 本题有点难想,采用贡献和的思想。首先需要定义一个last数组,用于记录当前遍历的字母s[i]上一次出现在字符串s中的位置。接着遍历数组,计算每一个字母的贡献值。
参考代码
#include
#define INF 0x3f3f3f3f
using namespace std;
typedef long long ll;

int main()
{
ios::sync_with_stdio(false);
string s;
cin >> s;
ll tmp[26], last[100005]; //last数组记录该字母上次出现的位置
fill(tmp, tmp+26, -1);
int len = s.size();
for(int i = 0; i < len; i++) { last[i] = tmp[s[i]-'a']; tmp

蓝桥杯 子串分值 递推最先出现在Python成神之路

版权声明:
作者:cc
链接:https://www.techfm.club/p/29392.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>