#P1533. 第2题-塔子哥的字符串(枚举)
题目描述
塔子哥有一个字符串 。
现在,他想让你求一下这个串中首尾字符相同的子串数目。
输入描述
一行,一个只包括小写字母的字符串 。
输出描述
一个整数,字符串中首尾字符相同的子串数目。
样例
输入
aaa
输出
6
说明
长度为 1 的三个子串 "a" 长度为 2 的两个子串 "aa" 长度为 3 的一个子串 "aaa"
首先这种字符串得题目,数据范围为除了那种一眼题。
剩下可以思考这两种方向
1:二分
2;O(n*26),就是枚举每一种字符串,然后在枚举整个字符串长度
或者O(26),就是枚举每一种字符
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long ll;
const int maxn=1e5+100;
ll cnt[maxn],len=0;
char a[maxn];
int main(){
scanf("%s",a);
len=strlen(a);
for(int i=0;i<len;i++){
cnt[a[i]-'a']++;
}
ll ans=len;
for(int i=0;i<26;i++){
ans=ans+(cnt[i]*(cnt[i]-1)/2);
}
cout<<ans<<endl;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2023-01-14 springboot中的一些常用的知识
2021-01-14 区间变成等差数列(线段树)
2020-01-14 dp(装箱)
2020-01-14 dp(武功秘籍)
2020-01-14 Color the ball(差分数组)
2020-01-14 A Simple Problem with Integers(树状数组区间变化和区间求和)
2020-01-14 A - 敌兵布阵