码迷,mamicode.com
首页 > 其他好文 > 详细

最大回文串 变种

时间:2016-04-05 12:24:13      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

 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 }

 

最大回文串 变种

标签:

原文地址:http://www.cnblogs.com/shake-rock/p/5354508.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!