Back to all solutions
#131 - Palindrome Partitioning
Problem Description
Given a string s, partition s such that every substring of the partition is a palindrome. Return all possible palindrome partitioning of s.
Solution
/**
* @param {string} s
* @return {string[][]}
*/
var partition = function(s) {
return backtrack([], s);
};
function backtrack(order, string, result = []) {
if (!string.length) {
result.push(order);
}
for (let index = 1; index <= string.length; index++) {
const sliced = string.slice(0, index);
if (isPalindrome(sliced)) {
backtrack([...order, sliced], string.slice(index), result);
}
}
return result;
}
function isPalindrome(input) {
let right = input.length - 1;
let left = 0;
while (left < right) {
if (input[left] !== input[right]) {
return false;
}
left++;
right--;
}
return true;
}