Guest User

Untitled

a guest
Oct 20th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. const solve = (str1, str2) => {
  2. if (str1.length !== str2.length) return false;
  3.  
  4. const addToMap = (map, value) => {
  5. if (map.has(value)) {
  6. map.set(value, map.get(value) + 1)
  7. } else {
  8. map.set(value, 1);
  9. }
  10. };
  11.  
  12. const removeToMap = (map, value) => {
  13. if(map.has(value)) {
  14. const count = map.get(value) - 1;
  15. if (count >= 0) {
  16. map.set(value, count);
  17. return true;
  18. }
  19. }
  20. return false;
  21. };
  22.  
  23. const obj = {
  24. odd: new Map(),
  25. even: new Map()
  26. };
  27. for (let i = 0; i < str1.length; i++) {
  28. addToMap(i % 2 ? obj.even : obj.odd, str1[i]);
  29. }
  30. for (let i = 0; i < str2.length; i++) {
  31. if(!removeToMap(i % 2 ? obj.even : obj.odd, str2[i])) return false;
  32. }
  33. return true;
  34. }
  35.  
  36. console.log(solve('abcd', 'cdab'));
  37. console.log(solve('abcd', 'bcda'));
Add Comment
Please, Sign In to add comment