分割回文串
力扣链接: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;}
}