class Solution {
List<List<String>> res = new ArrayList<>();
LinkedList<String> path = new LinkedList<>();
public List<List<String>> partition(String s) {
backtracking(0, s);
return res;
}
public void backtracking(int startIndex, String s){
if(startIndex == s.length()){
res.add(new ArrayList<>(path));
return;
}
StringBuffer sb = new StringBuffer();
for(int i = startIndex; i < s.length(); i++){
sb.append(s.charAt(i));
if(isPalindrome(sb)){
path.addLast(sb.toString());
backtracking(i + 1, s);
path.pollLast();
}
}
}
public boolean isPalindrome(StringBuffer s){
for(int j = s.length() - 1,k = 0; k < j;j--,k++){
if(s.charAt(j) != s.charAt(k)) return false;
}
return true;
}
}
131. 分割回文串
最新推荐文章于 2024-09-05 10:39:00 发布