-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathvalidAnagram.js
More file actions
executable file
·75 lines (33 loc) · 1.12 KB
/
validAnagram.js
File metadata and controls
executable file
·75 lines (33 loc) · 1.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
// whats an anagram?
// A word formed by rearranging the letters of another word
// example: s = "anagram", t = "nagaram" -------> true (same letters same count)
// s = "rat", t = "car" -------> false (different letters)
// count character frequencies
function isAnagram(s, t) {
if(s.length !== t.length) return false;
const count = {};
for (let char of s) {
count[char] = (count[char] || 0) + 1;
}
console.log(count)
for(let char of t) {
if(!count[char]) return false;
count[char]--;
}
console.log(count)
return true;
}
console.log(isAnagram("cable", "aacble"))
//one liner approach
// function isAnagram(s, t) {
// return s.split("").sort().join("") === t.split("").sort().join("");
// }
// console.log(isAnagram("cable", "acble"))
// sort both the strings and compare
// function isAnagram(s, t){
// if(s.length !== t.length) return false;
// const sortedS = s.split("").sort().join("");
// const sortedT = t.split("").sort().join("");
// return sortedT === sortedS;
// }
// console.log(isAnagram("cat", "tac"))