131. 分割回文串

it2022-05-05  139

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

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

示例:

输入: "aab" 输出: [   ["aa","b"],   ["a","a","b"] ]

解题思路:

这类题(类似于全排列之类的)采用回溯法来解决

回文串要判断回文串

class Solution { List<List<String>>res=new ArrayList<>(); public List<List<String>> partition(String s) { if(s.length()==0)return res; part(new ArrayList<String>(),s,0); return res; } public void part(List<String>list,String s,int begin){ if(begin==s.length()){ res.add(list); return; } for(int i=begin+1;i<=s.length();i++){ if(jud(s.substring(begin,i))){ list.add(s.substring(begin,i)); part(new ArrayList(list),s,i); list.remove(list.size()-1); } } } //判断回文串 public boolean jud(String s){ int len=s.length(); if(len==0)return false; int low=0; int high=len-1; while(low<high){ if(s.charAt(low)!=s.charAt(high)){ return false; } low++; high--; } return true; } }

 


最新回复(0)