java题目HJ85 最长回文子串

描述

给定一个仅包含小写字母的字符串,求它的最长回文子串的长度。
所谓回文串,指左右对称的字符串。
所谓子串,指一个字符串删掉其部分前缀和后缀(也可以不删)的字符串
数据范围:字符串长度1\le s\le 350\1s350 
进阶:时间复杂度:O(n)\O(n) ,空间复杂度:O(n)\O(n) 

输入描述:

输入一个仅包含小写字母的字符串

输出描述:

返回最长回文子串的长度

示例1

输入:
cdabbacc
输出:
4
说明:
abba为最长的回文子串  

回文串:准确说应该是正反读相同如abdba的回文串是5

 

复制代码
 1 import java.util.*;
 2 
 3 public class Main {
 4     public static void main(String args[]) {
 5         Scanner input = new Scanner(System.in);
 6         String s = input.nextLine();
 7         int max = 0;
 8         /**
 9         *双指针遍历找到最长子串
10         */
11         for (int start = 0; start < s.length(); start ++){
12             for (int end =s.length(); end > start; end--) {
13                 String compared = s.substring(start, end);
14                 if (isPalindromeString(compared)) {
15                     max = Math.max(max, end - start);
16                 }
17             }
18         }
19         System.out.print(max);
20     }
21     
22     /**
23     *判断一个字符串是否是回文字符串的方法
24     */
25     static boolean isPalindromeString(String s) {
26         StringBuilder s1 =new StringBuilder(s);
27         return s.equals(s1.reverse().toString());
28     }
29 }
复制代码

 

posted @   海漠  阅读(71)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示