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:待定

相关推荐
Lucky小小吴7 分钟前
JAVA漫谈反序列化篇——笔记
java·开发语言·笔记
练习时长一年21 分钟前
LeetCode热题100(最小栈)
java·算法·leetcode
阿杰AJie24 分钟前
通用 Token 管理工具(详细注释 + 完整使用示例 + 设计说明)
java·后端·程序员
TH_126 分钟前
28、powershell快速删除 node_modules
java
一 乐27 分钟前
智慧医药|基于springboot + vue智慧医药系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·后端
ytttr87330 分钟前
基于 C# WinForm 实现的 电影院售票系统
开发语言·c#
Tony Bai1 小时前
Goroutine “气泡”宇宙——Go 并发模型的新维度
开发语言·后端·golang
雨中飘荡的记忆1 小时前
享元模式深度解析:看Java如何优雅节省内存
java·设计模式
悟空码字1 小时前
SpringBoot接口防抖大作战,拒绝“手抖”重复提交!
java·spring boot·后端
编程大师哥1 小时前
Boost C++
java·c++·php