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. 分割回文串
使用回文串分割算法
最新推荐文章于 2025-12-05 17:02:52 发布
该博客介绍了一个Java实现的解决方案,用于将字符串分割成多个回文子串。通过回溯算法,遍历字符串并检查子串是否为回文,以生成所有可能的分割结果。该方法涉及到字符串处理和回溯搜索技术。
472

被折叠的 条评论
为什么被折叠?



