Бесконечное L oop для нахождения набора мощности для струны - PullRequest
0 голосов
/ 01 августа 2020

Я работаю над проблемой, в которой мне нужно найти весь набор мощности данной строки, который является всеми возможными подмножествами. Я чувствую, что близок со своим текущим кодом, но не могу понять, почему я застреваю на бесконечном l oop для моей второй итерации. Я прогнал его через отладчик, но все еще не могу понять, хотя уверен, что это очень просто. Когда i = 0, тогда он переходит ко второму l oop, где j = 0 && j < 1, поэтому, например, если help является моим заданным аргументом str, я ожидал бы, что он добавит j + '' и pu sh в мой allSubsets массив. Проблема в том, что итерация j будет продолжать цикл и выполнение j++ и никогда не остановится. Я не уверен, почему это так. Один конкретный вопрос, даже если я решу этот бесконечный l oop - нужно ли мне обновлять allSubsets.length на итерации, чтобы он обновлялся с помощью вставленных строк?

var powerSet = function(str) {

   let allSubsets = [''];

   for (let i = 0; i < str.length; i++) {
    debugger;
        for (let j = 0; j < allSubsets.length; j++) {
            allSubsets.push(sortLetters(str[i] + allSubsets[j]));
        }
   }
   return allSubsets;
};

var sortLetters = (word => {
    //convert string to an array
    //use the sort to sort by letter
    //convert array back to string and return
    return word.split('').sort().join('');
})
...