Skip to content

Instantly share code, notes, and snippets.

@gadzhimari
Created September 8, 2016 15:43
Show Gist options
  • Save gadzhimari/260965f08375745a1ed46946e4dc04f8 to your computer and use it in GitHub Desktop.
Save gadzhimari/260965f08375745a1ed46946e4dc04f8 to your computer and use it in GitHub Desktop.
// Original
function aclean(arr) {
// этот объект будем использовать для уникальности
var obj = {};
for (var i = 0; i < arr.length; i++) {
// разбить строку на буквы, отсортировать и слить обратно
var sorted = arr[i].toLowerCase().split('').sort().join(''); // (*)
obj[sorted] = arr[i]; // сохраняет только одно значение с таким ключом
}
var result = [];
// теперь в obj находится для каждого ключа ровно одно значение
for (var key in obj) result.push(obj[key]);
return result;
}
// My solution
const aclean = (anagrams) => {
for (let i = 0; i < anagrams.length; i++) {
for (let j = i + 1; j < anagrams.length; j++) {
if (anagrams[i].length === anagrams[j].length) {
for (let k = 0; k < anagrams[i].length; k++) {
if (anagrams[j].toLowerCase().indexOf(anagrams[i].toLowerCase().charAt(k)) !== -1) {
if (k === anagrams[i].length - 1) {
anagrams.splice(j--, 1);
break;
}
continue;
}
}
}
}
}
return anagrams;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment