131. Palindrome Partitioning

Given a string s, partition s such that every substring of the partition is a palindrome.

Return all possible palindrome partitioning of s.

For example, given s = "aab",
Return

[
["aa","b"],
["a","a","b"]
]

思路:

題目要求求所有可能拆分成回文數(shù)的情況,那么肯定都需要遍歷到,對于每一個(gè)字符串都要分別判斷是不是回文數(shù),需要一個(gè)判斷回文字符串的函數(shù),還需要一個(gè)DFS函數(shù)來遞歸。
遞歸時(shí)的終止條件是start值等于字符串長度。比如abcd的遞歸順序是a-b-c-d-cd-bc-bcd-ab-abc-abcd

 var partition = function(s) {
            function isPalindrome(s, start, end) {
                while (start < end) {
                    if (s[start] != s[end]) return false;
                    ++start;
                    --end;
                }
                return true;
            }

            function partitionDFS(s, start, out, res) {
                if (start == s.length) {
                    var tmp=out.concat();
                    res.push(tmp);
                    return;
                }
                for (var i = start; i < s.length; i++) {
                    if (isPalindrome(s, start, i)) {
                        out.push(s.substr(start, i - start + 1));
                        partitionDFS(s, i + 1, out, res);
                        out.pop();
                    }
                }
            }
            var res = [];
            var out = [];
            partitionDFS(s, 0, out, res);
            return res;
        };
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容