每日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题分割回文串的主要内容,如果未能解决你的问题,请参考以下文章

《LeetCode之每日一题》:246.分割回文串

每日一题 分割回文串(深度优先搜索)

算法题13 分割回文串

力扣算法:125-验证回文串,131-分割回文串---js

LeetCode第131题—分隔回文串—Python实现

算法千题案例每日LeetCode打卡——73.最长回文串