JavaScript: генерировать все перестановки строки
Основы JavaScript (синтаксис ES6): упражнение 136 с решением
Напишите программу на JavaScript для генерации всех перестановок строки (содержит дубликаты).
Пример решения:
HTML-код:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Generate all permutations of a string </title>
</head>
<body>
</body>
</html>
Код JavaScript:
//#Source https://bit.ly/2neWfJ2
const stringPermutations = str => {
if (str.length <= 2) return str.length === 2 ? [str, str[1] + str[0]] : [str];
return str
.split('')
.reduce(
(acc, letter, i) =>
acc.concat(stringPermutations(str.slice(0, i) + str.slice(i + 1)).map(val => letter + val)),
[]
);
};
console.log(stringPermutations('abc'));
console.log(stringPermutations('*$*'));
Пример вывода:
[ "А", "ACB", "БАК", "ДСС", "кабина", "СВ"] [ "* $ *", "** $", "$ **", "$ **", "** $", "* $ *"]
Иллюстрированная презентация:
Блок - схема:
Демонстрация в реальном времени:
См. Pen javascript-basic-упражнение-136-1 от w3resource ( @ w3resource ) на CodePen .
Улучшите этот пример решения и опубликуйте свой код через Disqus
Предыдущий: Напишите программу на JavaScript, чтобы получить сумму степеней всех чисел от начала до конца (оба включительно).
Далее: Напишите программу на JavaScript для выполнения стабильной сортировки массива, сохраняя начальные индексы элементов, когда их значения совпадают. Не изменяйте исходный массив, но вместо этого возвращает новый массив.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования