Advertisement
binibiningtinamoran

AnagramChecker

May 27th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. //(function() {
  3.     let hashMap = {};
  4.     let isAnagram = (str1, str2) => {
  5.  
  6.         if (str1.length !== str2.length) {
  7.             return false;
  8.         }
  9.  
  10.         // Create a hash mao of str2 character and increase value one (+1)
  11.         createStr1HashMap(str1);
  12.  
  13.         let valueExist = createStr2HashMap(str2);
  14.  
  15.         return isStringsAnagram(valueExist);
  16.     }
  17.  
  18.     let createStr1HashMap = (str1) => {
  19.         [].map.call(str1, function (value, index, array) {
  20.             hashMap[value] = value in hashMap ? (hashMap[value] + 1) : 1;
  21.             return value;
  22.         });
  23.     }
  24.  
  25.     let createStr2HashMap = (str2) => {
  26.         valueExist = [].every.call(str2, function (value, index, array) {
  27.             if (value in hashMap) {
  28.                 hashMap[value] = hashMap[value] - 1;
  29.             }
  30.             return value in hashMap;
  31.         });
  32.         return valueExist;
  33.     }
  34.  
  35.     function isStringsAnagram(valueExist) {
  36.         if (!valueExist) {
  37.             return valueExist;
  38.         } else {
  39.             let isAnagram;
  40.             for (let i in hashMap) {
  41.                 if (hashMap[i] !== 0) {
  42.                     isAnagram = false;
  43.                     break;
  44.                 } else {
  45.                     isAnagram = true;
  46.                 }
  47.             }
  48.             return isAnagram;
  49.         }
  50.     }
  51.  
  52.  
  53.  
  54. console.log(isAnagram('stackoverflow', 'flowerovstack')); // true
  55. console.log(isAnagram('stackoverflow', 'flowervvstack')); // false
  56.  
  57. //})();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement