当前位置:   article > 正文

【回溯法】分割回文串_给你一个字符串s,请你将s分割成一些子串

给你一个字符串s,请你将s分割成一些子串

问题描述

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

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

示例:

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

  1. import java.util.List;
  2. import java.util.ArrayList;
  3. class Solution {
  4. public static List<List<String>> solution(String tmp){
  5. if(null == tmp || tmp.length() == 0){
  6. return Collections.emptyList();
  7. }
  8. List<List<String>> result = new ArrayList<List<String>>();
  9. solution(result, tmp, 0, new ArrayList<String>());
  10. return result;
  11. }
  12. private static void solution(List<List<String>> result, String tmp, int index, List<String> list){
  13. if(index >= tmp.length()){
  14. result.add(new ArrayList<String>(list));
  15. return;
  16. }
  17. for(int i = index; i < tmp.length(); i++){
  18. if(isPlalindrome(tmp, index, i)){
  19. list.add(tmp.substring(index, i + 1));
  20. solution(result, tmp, i + 1, list);
  21. list.remove(list.size() - 1);
  22. }
  23. }
  24. }
  25. private static boolean isPlalindrome(String s, int begin, int end){
  26. while(begin < end){
  27. if(s.charAt(begin++) != s.charAt(end--)){
  28. return false;
  29. }
  30. }
  31. return true;
  32. }
  33. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/676726
推荐阅读
相关标签
  

闽ICP备14008679号