给你一个字符串 s
,请你将 s
分割成一些子串,使每个子串都是 回文串 。返回 s
所有可能的分割方案。
示例 1:
输入:s = "aab" 输出:[["a","a","b"],["aa","b"]]
示例 2:
输入:s = "a" 输出:[["a"]]
思路:主要就是确定一个串的start和end
java">List<List<String>> list=new ArrayList<>();List<String> ret=new ArrayList<>();public List<List<String>> partition(String s) {backTracking(s,0);return list;}public void backTracking(String s,int start){if(start>=s.length()){list.add(new ArrayList<>(ret));return;}for(int i=start;i<s.length();i++){if(isHuiWen(start,i,s)){ret.add(s.substring(start,i+1));backTracking(s,i+1);ret.remove(ret.size()-1);}}}// 判断是否是回文串public boolean isHuiWen(int start,int end,String s){while(start<=end){if(s.charAt(start)!=s.charAt(end))return false;start++;end--;}return true;}