Leetcode 131.分割回文串

时间:2024-09-09 14:33:26

分割回文串

给定一个字符串 s,将 s 分割成一些子串,使每个子串都是回文串。

返回 s 所有可能的分割方案。

示例:

输入: "aab"

输出:

[

["aa","b"],

["a","a","b"]

]

 public class Solution{
List<List<String>> res=new ArrayList<>();
public List<List<String>> partition(String s){
DFS(s,new ArrayList<String>());
return res;
} private boolean isPalindrom(String s){
int p1=0;
int p2=s.length()-1;
int len=(s.length()+1)/2;
for(int i=0;i<len;i++){
if(s.charAt(p1++)!=s.charAt(p2--))
return false;
}
return true;
} private void DFS(String s,List<String> list){
if(s.length()<1){
res.add(new ArrayList<>(list));
return;
}
for(int i=1;i<=s.length();i++){
String str=s.substring(0,i);
if(isPalindrom(str)){
list.add(str);
DFS(s.substring(i),list);
list.remove(list.size()-1);
}else{
continue;
}
}
}
}