Напечатать на консоль наибольшее число строк из переданных, которые являются перестановками друг друга. Если ни одна из строк не является перестановкой другой (например, была передана только одна строка или строки содержат уникальные символы), напечатать одну из строк. Если не было передано ни одной строки, ничего не выводить. Вывод всегда сопровождается переводом строки, каждая строка выводится на отдельной строке. Пример:
node permutations.js ABCDE EDBCA XYZ ZYX ZXY XYZ ZYX ZXY
Сложно понять, что именно надо сделать. Я сделал так, как прочитал.
function printMaxTranspositionStrings(string) {
if (!string) return;
var words = string.split(' ');
if (!words.length) return;
if (words.length === 1) {
printString(words[0]);
return;
}
var uniqueWords = words.reduce(function(res, word) {
var sortedWord = word.split('').sort().join('');
if (!res.sortedWords[sortedWord]) {
res.sortedWords[sortedWord] = [];
}
res.sortedWords[sortedWord].push(word);
if (sortedWord.length > res.max.length) {
res.max = sortedWord;
}
return res;
}, {
sortedWords: {},
max: ''
});
uniqueWords.sortedWords[uniqueWords.max].forEach(printString);
}
function printString(string) {
console.log(string);
}
printMaxTranspositionStrings('ABCDE EDBCA XYZ ZYX ZXY XYZ ZYX ZXY');
Продвижение своими сайтами как стратегия роста и независимости