京东java笔试,删除一个或者多个字符串后回文串的数目问题
import java.util.ArrayList; import java.util.Scanner;
public class Main {
static int count = 0; public boolean isFalg(String s){ int len = s.length(); int left = 0; int right = len-1; while(left <= right){ if(s.charAt(left) != s.charAt(right)){ return false; } right--; left++; } return true; } public void traceBack(String s,ArrayList<Character> list){ int len = s.length(); if(len == 0){ return; } //System.out.println(list.toString()); for(int i=0;i<s.length();i++){ //System.out.println("index:"+i+"char:"+s.charAt(i)); list.add(s.charAt(i)); StringBuilder builder = new StringBuilder(); for(int j=0;j<list.size();j++){ builder.append(list.get(j)); } if(isFalg(builder.toString())){ System.out.println(builder.toString()); count++; } System.out.println("index:"+i); if(i+1 < s.length()) traceBack(s.substring(i+1),list); list.remove(list.size()-1); } } public static void main(String args[]){ Scanner sc = new Scanner(System.in); String s = sc.nextLine(); int len = s.length(); ArrayList<Character> list = new ArrayList<Character>(); Main main = new Main(); main.traceBack(s, list); String ss = "ABA"; System.out.println(main.isFalg(ss)); System.out.println(count); }}