5.无重复最大回文字符串
给你一个字符串 s,找到 s 中最长的回文子串。
示例 1:
输入:s = "babad"
输出:"bab"
解释:"aba" 同样是符合题意的答案。
示例 2:
输入:s = "cbbd"
输出:"bb"
提示:
1 <= s.length <= 1000
s 仅由数字和英文字母组成
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-palindromic-substring
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
思路:遍历s中每个字符,以该字符为中心,判断回文长度,并与最大MAX长度比较。
应用方法:string s.substr(int start,int length);
解题:
class Solution { public: string longestPalindrome(string s) { int Max=0; int MaxStart=-1; int left; int right; int chongfu=1; if(s.length()<2){ return s; } for(int i=0;i<s.length();i++){ left=i; right=i; chongfu=1; //判断重复字符状态码,为1则判断,为0则不判断 while(left>=0&&right<s.length()){ if(s[left]==s[right+1]&&chongfu==1){ //过滤重复字符;初始判断回文时需过滤重复字符 right++; //判断完毕后归0,不在判断 continue; } else{ chongfu=0; } if(left!=0&&right!=s.length()-1&&s[left-1]==s[right+1]){ left-=1; right+=1; } else { break; } } if(right-left+1>Max){ Max=right-left+1; MaxStart=left; } } return s.substr(MaxStart,Max); } };
执行用时:16 ms, 在所有 C++ 提交中击败了90.91%的用户
内存消耗:6.9 MB, 在所有 C++ 提交中击败了95.11%的用户
通过测试用例:180 / 180
结论:
代码虐我千百遍,我带代码如初恋!!!!!!!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)