Skip to content

Commit 2a28c66

Browse files
committed
add: solve DaleStudy#218 Valid Anagram with ts
1 parent e0d7d23 commit 2a28c66

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

โ€Žvalid-anagram/Yjason-K.ts

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/**
2+
* ๋‘ ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•ด์„œ Anagram ์—ฌ๋ถ€ ํ™•์ธ
3+
* - ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
4+
* - ๋ฌธ์ž์—ด ์ˆœํšŒ์™€ ๋น„๊ต ๊ณผ์ •์„ ํฌํ•จํ•˜์—ฌ n์€ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด
5+
* - ๊ณต๊ฐ„ ๋ณต์žก๋„: 0(1)
6+
* - ์•ŒํŒŒ๋ฒณ ๊ฐœ์ˆ˜๊ฐ€ 26๊ฐœ๋กœ ๊ณ ์ • ์ƒ์ˆ˜ ๊ณต๊ฐ„
7+
* @param {string} s - ๋ฌธ์ž์—ด s
8+
* @param {string} t - ๋ฌธ์ž์—ด t
9+
* @returns {boolean} - Anagram ์—ฌ๋ถ€
10+
*/
11+
function isAnagram(s: string, t: string): boolean {
12+
// ๋‘ ๋ฌธ์—ด์˜ ๊ธธ์ด๊ฐ€ ๋‹ค๋ฅธ๊ฒฝ์šฐ false ๋ฐ˜ํ™˜
13+
if (s.length !== t.length) {
14+
return false;
15+
}
16+
17+
// ๋ฌธ์ž์—ด ์•ŒํŒŒ๋ฒณ ์‚ฌ์ „์„ ์œ„ํ•œ ๊ฐ์ฒด ์„ ์–ธ
18+
let vocabS = {};
19+
let vocabT = {};
20+
21+
// s ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ์•ŒํŒŒ๋ฒณ ์‚ฌ์ „ ์ƒ์„ฑ
22+
for (const char in s) {
23+
vocabS = vocabS[char] ? vocabS[char] + 1 : 1;
24+
};
25+
26+
// t ๋ฌธ์ž์—ด์— ๋Œ€ํ•œ ์•ŒํŒŒ๋ฒณ ์‚ฌ์ „ ์ƒ์„ฑ
27+
for (const char in t) {
28+
vocabT = vocabT[char] ? vocabT[char] + 1 : 1;
29+
30+
31+
// ๋‘ ๋ฌธ์ž์—ด ์‚ฌ์ „์„ ๋น„๊ตํ•˜๋ฉฐ count ๊ฐ€ ์ผ์น˜ ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ false ๋ฐ˜ํ™˜
32+
for (const char in vocabS) {
33+
if (vocabS[char] !== vocabT[char]) {
34+
return false;
35+
}
36+
}
37+
38+
return true;
39+
};
40+

0 commit comments

Comments
ย (0)