关注
先说结论,动态规划,时间复杂度最差为O(n3)。
递推公式为dp[i][j] = str[ dp[i][j-1] +j-i+1 ] ==
str[j]?dp[i][j-1]:dp[dp[i][j-1]]
递推公式优点难懂,举个例子:
abcab
设数组dp[len][len],其中dp[i][j]表示 上一个str[i,j]的开始位置
初始化:因为str[0,0] = a,之前没出现过,dp[0][0] = -1
同理str[1,1] = -1,dp[2][2] = -1,
因为str[3,3] = a,上一次出现的位置为0,因此dp[3][3] = 0
因为str[4,4] = b,上一次出现的位置为1,因此dp[4][4] = 1.
#include <iostream>
#include <vector>
#include <map>
using namespace std;
void getAllSub(const string str){
const int len = str.length();
map<char,int> mymap;
vector<vector<int>>
myvec(len,vector<int>(len,-1));
for(int i =0;i<len;i++){
if(mymap.count(str[i]) == 0){
mymap[str[i]] = i;
}else{
myvec[i][i] = mymap[str[i]];
mymap[str[i]] = i;
}
}
for(int i =0;i<len;i++)
for(int j =i;j<len;j++){
if(i == j){
if(myvec[i][j] != -1 &&
myvec[myvec[i][j]][myvec[i][j]] == -1)
cout<<str.substr(i,1)<<endl;
continue;
}
int tmp = myvec[i][j-1];
while(tmp != -1){
if(str[j] == str[tmp+j-i]){
myvec[i][j] = tmp;
if(myvec[tmp][tmp+j-i-1] == -1)
cout<<str.substr(i,j-i+1)<<endl;
break;
}else tmp = myvec[tmp][tmp+j-i-1];
}
}
}
int main()
{
getAllSub("ababa");
return 0;
}
查看原帖
点赞 评论
相关推荐
02-24 19:45
西南大学 后端工程师
程序员小白条:简历写的有点太多了,一般两页是实习经历比较多的情况下,要么自己有一些有影响力的开源项目,如果你走软件,硬件没必要实习,学校安排总是没区分度的,央国企最好有中大厂实习,另外学历比较重要,不是都要求硕士的,技术会比互联网要求低一些 点赞 评论 收藏
分享
03-16 16:31
湖南工商大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
- 1... 教你如何快速包装简历(Agent相关)1.3W
- 2... 网申助手用了三周,说说真实感受(不是广告)8980
- 3... 🔥牛客春招季🔥各公司春招&实习最新进展,这里实时更新!7506
- 4... 面试官视角聊聊:如何避免成为“AI工具人”6032
- 5... AI应用开发岗,简历怎么写才能脱颖而出?5857
- 6... 暑期结束!4918
- 7... OpenAI关停Sora,这就不玩了?3459
- 8... 122%的涨幅啊!小红书还是太猛了3459
- 9... 蚂蚁集团-AI Coding笔试2928
- 10... 产品岗集合,我发现了一个顶级项目2806
正在热议
更多
# 你的实习产出是真实的还是包装的? #
8876次浏览 126人参与
# 第一份工作应该只看薪资吗 #
251946次浏览 1912人参与
# 米连集团26产品管培生项目 #
10208次浏览 262人参与
# 春招至今,你的战绩如何? #
29207次浏览 258人参与
# AI面会问哪些问题? #
4589次浏览 142人参与
# 长得好看会提高面试通过率吗? #
13419次浏览 130人参与
# MiniMax求职进展汇总 #
28262次浏览 334人参与
# 什么专业适合考公 #
56433次浏览 284人参与
# 哪些公司校招卡第一学历 #
250862次浏览 861人参与
# 你做过最难的笔试是哪家公司 #
6598次浏览 55人参与
# 找实习记录 #
240791次浏览 1466人参与
# 从事AI岗需要掌握哪些技术栈? #
1941次浏览 59人参与
# 春招你拿到offer了吗 #
812557次浏览 9875人参与
# 找AI工作可以去哪些公司? #
1744次浏览 35人参与
# 一张图晒出你司的标语 #
1544次浏览 23人参与
# HR最不可信的一句话是__ #
2634次浏览 53人参与
# 沪漂/北漂你觉得哪个更苦? #
4570次浏览 75人参与
# 蚂蚁求职进展汇总 #
156804次浏览 1248人参与
# AI时代,哪个岗位还有“活路” #
5324次浏览 135人参与
# 通信和硬件还有转码的必要吗 #
98902次浏览 633人参与
# 简历第一个项目做什么 #
34169次浏览 534人参与
# 简历中的项目经历要怎么写? #
314675次浏览 4555人参与
