Java数据结构与算法(最长回文子串暴力算法)

前言

回文子串是练习数据结构和算法比较好的使用场景,可以同时练习到双指针、动态规划等一些列算法。

实现原理

优先暴力算法实现。这里定义最长回文子串长度的大小为maxLen,起点位置为0.

暴力循环过程中发现maxLen有所增长则更新maxLen和begin。

validCicle用于每次暴力循环中判断是否是回文子串。采用首尾双指针移动方式。

具体代码实现

java 复制代码
class Solution {
    public String longestPalindrome(String s) {

        int maxLen=1;
        int begin=0;
        char[] charArray=s.toCharArray();
        for(int i=0;i<charArray.length-1;i++){
            for(int j=i+1;j<charArray.length;j++){
                if(j-i+1>maxLen&&validCicle(charArray,i,j)){
                    maxLen=j-i+1;
                    begin=i;
                }
            }
        }
        return s.substring(begin,begin+maxLen);
    }

    public boolean validCicle(char[] charArray,int left,int right){
        while(left<right){
            if(charArray[left]==charArray[right]){
                left++;
                right--;
            }else{
                return false;
            }
        }
        return true;
    }
}

QA:待定

相关推荐
zybsjn10 小时前
ShardingSphere 启动报错 “Unknown table ‘keywords‘ in information_schema“ 完整解决方案
java
月明长歌10 小时前
【码道初阶】【LeetCode 102】二叉树层序遍历:如何利用队列实现“一层一层切蛋糕”?
java·数据结构·算法·leetcode·职场和发展·队列
codingPower10 小时前
制作ftl文件通过FreeMarke生成PDF文件(含图片处理)
java·开发语言·pdf
CQ_YM10 小时前
Linux线程控制
linux·c语言·开发语言·线程
R.lin10 小时前
Spring AI Alibaba 1.1 正式发布!
java·后端·spring
lingran__10 小时前
C语言字符函数和字符串函数详解
c语言·开发语言
CodeCraft Studio10 小时前
JavaScript图表库 DHTMLX Diagram 6.1 重磅发布:全新PERT模式上线,项目可视化能力再升级!
开发语言·javascript·ecmascript·dhtmlx·图表开发·diagram·javascript图表库
程序员阿明10 小时前
spring security 6的知识点总结
java·后端·spring
Dxy123931021610 小时前
Python的正则表达式如何做数据校验
开发语言·python·正则表达式
UP_Continue10 小时前
C++--右值和移动语义
开发语言·c++