LeetCode-131-分割回文串

s
,請你將s
回文串 。返回s
所有可能的分割方案。回文串 是正著讀和反著讀都一樣的字符串。
示例說明請見LeetCode官網(wǎng)。
來源:力扣(LeetCode) ??
鏈接:https://leetcode-cn.com/problems/palindrome-partitioning/ ??
著作權(quán)歸領(lǐng)扣網(wǎng)絡所有。商業(yè)轉(zhuǎn)載請聯(lián)系官方授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
解法一:遞歸法
首先處理兩種特殊情況,如果字符串為null,直接返回空結(jié)果集;如果字符串的長度為1,則只有一種分割情況,直接返回這種情況。
當字符串的長度大于1時,使用遞歸的方式處理,其中會使用一個判斷字符串是否是回文串的方法isHuiwen,遞歸過程如下:
從字符串的第一個字符開始判斷,參數(shù)有前面已經(jīng)被分區(qū)的回文串list、當前位置、當前要判斷的子串;
首先判斷如果已經(jīng)處理到字符串的最后一個字符,如果當前分區(qū)字符串是回文串,則將當前分區(qū)字符串添加到partitions,然后將之添加到結(jié)果集中,否則,直接返回;
否則,首先判斷當前分區(qū)字符串是否是回文串,有兩種可能:
如果是,則將當前分區(qū)字符串添加到partitions,將下一個字符作為新的分區(qū)字符串開始遞歸判斷;
如果不是,將下一個字符添加到當前分區(qū)字符串中,遞歸判斷。
最后,返回結(jié)果集。
【每日寄語】 棄燕雀之小志,慕鴻鵠而高翔。
標簽: