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

相关推荐
Mr -老鬼7 分钟前
Rust适合干什么?为什么需要Rust?
开发语言·后端·rust
予枫的编程笔记11 分钟前
【Java集合】深入浅出 Java HashMap:从链表到红黑树的“进化”之路
java·开发语言·数据结构·人工智能·链表·哈希算法
ohoy16 分钟前
RedisTemplate 使用之Set
java·开发语言·redis
mjhcsp16 分钟前
C++ 后缀数组(SA):原理、实现与应用全解析
java·开发语言·c++·后缀数组sa
hui函数17 分钟前
如何解决 pip install 编译报错 ‘cl.exe’ not found(缺少 VS C++ 工具集)问题
开发语言·c++·pip
云栖梦泽27 分钟前
易语言Windows桌面端「本地AI知识管理+办公文件批量自动化处理」双核心系统
开发语言
8***f39530 分钟前
Spring容器初始化扩展点:ApplicationContextInitializer
java·后端·spring
r_oo_ki_e_36 分钟前
java22--常用类
java·开发语言
AI小怪兽39 分钟前
轻量、实时、高精度!MIE-YOLO:面向精准农业的多尺度杂草检测新框架 | MDPI AgriEngineering 2026
开发语言·人工智能·深度学习·yolo·无人机
码农小韩39 分钟前
基于Linux的C++学习——循环
linux·c语言·开发语言·c++·算法