优快云注册很久了,到现在才开始摸起来,愧疚愧疚啊。
不过终于跨行成功,从苦逼土木人,进化为光荣代码农,现在开始全心投入计算机伟大事业中,幸好现在大三,一切都还有时间。现在在学习c++,之前只会一些c,近期不出意料的话文章应该大部分都会写一些关于c++的一些学习历程啊和遇到的问题啊之类的。至于要不要传一些现在在学的东西,一时还没有想好,不过之后如果时间上来得及的话,也会发一些。希望大家多多指教,共同进步。
现在的计划就是好好学c++,一边学,一边刷刷算法题,看网上听人推荐的,应该不算弯路吧。不过算法真心对新手不太友好,但是坚持一阵子,肯定会变好的吧,加油。我感觉我现在最多一些暴力破解法,啊哈哈哈,好期待自己变为大牛的一天
Leetcode 5 最长回文字符串
给你一个字符串 s
,找到 s
中最长的回文子串
class Solution {
public:
string longestPalindrome(string s) {
int len = s.length();
string ans = "";
int l,r;
for(int i = 0;i<len;i++){
for(int t = len-1;t>=i;t--){
if(s[i] == s[t]&&t-i+1>ans.length()){
l = i;r=t;
bool flag = true;
while(l<=r){
if(s[l] == s[r]){
l++;
r--;
}else{
flag = false;
break;
}
}
if(flag){
ans =s.substr(i,t-i+1);
}
}
}
}
return ans;
}
};
写的时候感觉自己水平不够,有借鉴网上网友的题解。属于简单暴力解,思路就是类似双指针,前边一个指向前头,后面一个指想最后,往中间靠。然后中间有用到一个bool来判断是不是回文字符串。(刚开始写吃亏了,没考虑完全,想了半天)。
其实写的时候应该写成中心扩散的,这样会方便好多,学到了。其他解法就暂时不copy了,我这种是纯暴力,后面等刷一阵子,再分析更全解法吧,我先练练脑子。
未来加油!!!