本文主要是介绍获得一个字符串的所有回文子串集合,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
import java.util.ArrayList;
public class Solution {//获得一个字符串的所有回文子串集合public ArrayList<ArrayList<String>> partition(String s) {ArrayList<ArrayList<String>>arr=new ArrayList<ArrayList<String>>();if(s==null||s.length()==0)return arr;ArrayList<String> list=new ArrayList<String>();dfs(0,s,list,arr);return arr;}//回溯法private void dfs(int index,String s,ArrayList<String> preList, ArrayList<ArrayList<String>>arr){if(index==s.length()){arr.add(new ArrayList<String>(preList));return;}ArrayList<String> list = new ArrayList<String>(preList);for(int i=index;i!=s.length();i++){if(isHui(s,index,i)){list.add(s.substring(index,i+1));dfs(i+1,s,list,arr); //递归调用list.remove(list.size()-1);}}}//判断是否为回文串private boolean isHui(String s,int start,int end){while(start<=end){if(s.charAt(start++)!=s.charAt(end--)){return false;}}return true; }public static void main(String[]args){System.out.println("Hello World!");String s="aaab";Solution sol=new Solution();System.out.println(sol.partition(s));}
}
这篇关于获得一个字符串的所有回文子串集合的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!