每日5题分割回文串

Posted Alice_yufeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日5题分割回文串相关的知识,希望对你有一定的参考价值。

class Solution 
/*回文判断*/
  private boolean isPalindrome(String str) 
    StringBuffer sb = new StringBuffer(str);
    if (sb.reverse().toString().equals(str)) 
        return true;
    
    return false;
  
/*遍历符合回文条件的字符串组合*/
  private void partitionDP(String str, List<String> oneArray, List<List<String>> res) 
    if (str.isEmpty()) 
        List<String> oneArrayCopy = new ArrayList<>();
        oneArrayCopy.addAll(oneArray);
        res.add(oneArrayCopy);
    

    for (int i = 0; i <= str.length(); i++) 
        String preStr = str.substring(0, i);
        if (!isPalindrome(preStr) || preStr.isEmpty()) 
            continue;
        
        oneArray.add(preStr);
        partitionDP(str.substring(i), oneArray, res);
        oneArray.remove(oneArray.size() - 1);
    
  
/*处理准备工作*/
  public List<List<String>> partition(String s) 
    List<List<String>> result = new ArrayList<>();
    List<String> oneArray = new ArrayList<>();
    partitionDP(s, oneArray, result);
    return result;
  

以上是关于每日5题分割回文串的主要内容,如果未能解决你的问题,请参考以下文章