给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是回文串。返回 s 所有可能的分割方案。
解析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| var partition = function (s) { const result = []; function isPali(str, l, r) { while (l < r) { if (str[l++] !== str[r--]) return false; } return true; } function backtrack(start, path) { if (start === s.length) { result.push([...path]); return; } for (let end = start; end < s.length; end++) { if (isPali(s, start, end)) { path.push(s.substring(start, end + 1)); backtrack(end + 1, path); path.pop(); } } } backtrack(0, []); return result; };
|