分割回文串
力扣链接:131. 分割回文串
题目
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是 回文串 。返回 s 所有可能的分割方案。
回文串 是正着读和反着读都一样的字符串。
示例
Java代码
class Solution {
List<List<String>> ans = new LinkedList<>();
public List<List<String>> partition(String s) {
List<String> list = new LinkedList<>();
dfs(list,0,s);
return ans;
}
public void dfs(List<String> list,int k,String s){
if(k>=s.length()){
ans.add(new LinkedList<>(list));
return ;
}
for(int i=1;i<=s.length()-k;i++){
if(judge(s.substring(k,k+i))){
list.add(s.substring(k,k+i));
dfs(list,k+i,s);
list.remove(list.size()-1);
}
}
}
public boolean judge(String s){
StringBuilder p = new StringBuilder(s).reverse();
if(s.equals(p.toString())){
return true;
}
return false;
}
}