回文子串是练习数据结构和算法比较好的使用场景,可以同时练习到双指针、动态规划等一些列算法。
中心扩散算法实现。这里定义最长回文子串长度的大小为maxLen,起点位置为0.
奇数个数为中心点和偶数个数为中心点分别计算回文长度大小。注意while退出条件为不匹配回文子串,计算长度时需回退right和left。此时长度计算公式为(right-1)-(left+1)+1
得到最长回文长度大小后再计算起点位置。i-(maxLen-1)/2
- class Solution {
- public String longestPalindrome(String s) {
-
- int maxLen=1;
- int begin=0;
- char[] charArray=s.toCharArray();
- for(int i=0;i
1;i++){ - int oneNum=validCicle(charArray,i,i);
- int twoNum=validCicle(charArray,i,i+1);
- int max=Math.max(oneNum,twoNum);
- if(maxLen
- maxLen=max;
- begin=i-(maxLen-1)/2;
- }
- }
- return s.substring(begin,begin+maxLen);
- }
-
-
-
- public int validCicle(char[] charArray,int left,int right){
- while(left>=0&&right
- if(charArray[left]==charArray[right]){
- left--;
- right++;
- }else{
- break;
- }
- }
- return (right-1)-(left+1)+1;
- }
- }
QA:待定
-
相关阅读:
salesforce零基础学习(一百一十三)Trigger中获取IP地址的过程
Android_Monkey_测试执行策略及标准
基于SpringBoot的驾校管理系统
高阶数据结构学习 —— 图(4)
ubuntu20.04如何安装搜狗输入法
【公众号开发】图像文字识别 · 模板消息推送 · 素材管理 · 带参数二维码的生成与事件的处理
CAXA 3D 实体设计2023 软件下载+补丁+安装教程
2024年跳槽面试心得
循环神经网络的网络结构,循环神经网络应用举例
短出行日渐成熟,电动两轮车迎来下半场
-
原文地址:https://blog.csdn.net/acuteeagle01/article/details/139375504