最大回文串 变种

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了最大回文串 变种相关的知识,希望对你有一定的参考价值。

 1 /**
 2  * 求一个字符串的最大回文串,可以在两边和中间删除任意多个字符,使剩下的字符串为回文串
 3  * 可以使用回溯法
 4  */
 5 import java.util.Scanner;
 6 
 7 public class Palindrome {
 8     static int[] flag;
 9     static int length;
10     static String s;
11     static int maxLength;
12     static String maxString;
13     
14     public static void main(String[] args) {
15         Scanner sc = new Scanner(System.in);
16         while(sc.hasNext()){
17             s = sc.next();
18             length = s.length();
19             flag = new int[length];
20             maxLength = 0;
21             f(0);
22             System.out.println(maxString + " " + maxLength);
23         }
24     }
25     
26     public static void f(int n){
27         //递归出口
28         if(n==length){
29             StringBuffer sb = new StringBuffer();
30             for(int i=0;i<length;i++){
31                 if(flag[i]==1){
32                     sb.append(s.charAt(i));
33                 }
34             }
35             //判断回文串
36             if(sb.toString().equals(sb.reverse().toString())&&sb.length()>maxLength){
37                 maxString = sb.toString();
38                 maxLength = sb.length();
39             }
40             return;
41         }
42         
43         //
44         flag[n]=1;
45         f(n+1);
46         
47         //不要
48         flag[n]=0;
49         f(n+1);
50     }
51 }

 

以上是关于最大回文串 变种的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode5最大回文子串(中心扩散法)

Maximum Palindromic String(最大回文串)

131. 分割回文串

回文串最大长度

最大回文子串匹配:暴力算法中心拓展法动态规划manacher算法

AcWing 139 回文子串的最大长度(二分,hash ver.)