Skip to content

Instantly share code, notes, and snippets.

@missingdays
Last active January 21, 2016 11:24
Show Gist options
  • Save missingdays/a9b3251434b423e72c8a to your computer and use it in GitHub Desktop.
Save missingdays/a9b3251434b423e72c8a to your computer and use it in GitHub Desktop.
Such anagram
function addLetters(s){
var letters = {};
for(var i = 0; i < s.length; i++){
var letter = s[i].toLowerCase();
if(letter != " "){
if(letters[letter]){
letters[letter] += 1;
} else {
letters[letter] = 1;
}
}
}
return letters;
}
function isAnagram(s1, s2){
var letters1 = addLetters(s1);
var letters2 = addLetters(s2);
for(var letter in letters1){
if(letters1[letter] != letters2[letter]){
/*
Здесь можно возвращать массив вроде [false, letter] чтобы определять, в какой букве разница,
и даже [false, letter, letters2[letter] - letters1[letter]] чтобы определять разницу по количеству букв.
*/
return false;
}
}
for(var letter in letters2){
if(letters1[letter] != letters2[letter]){
return false;
}
}
return true;
}
console.log(isAnagram("стационар", "соратница"));
console.log(isAnagram("покраснение", "пенсионерка"));
console.log(isAnagram("внимание", "Вениамин"));
console.log(isAnagram("апельсин", "спаниель"));
console.log(isAnagram("eleven plus two", "twelve plus one"));
console.log(isAnagram("statue of liberty", "built to stay free"));
console.log(isAnagram("older and wiser", "I learned words"));
// false
console.log(isAnagram("стационар", "сортница"));
console.log(isAnagram("покранение", "пенсионерка"));
console.log(isAnagram("внимание", "Вениамина"));
console.log(isAnagram("апельсина", "спаниель"));
console.log(isAnagram("eleven plus one", "twelve plus one"));
console.log(isAnagram("statue of paris", "built to stay free"));
console.log(isAnagram("older and wiser", "you learned words"));
@isuvorov
Copy link

круто!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment