Skip to content

Commit 9192ae9

Browse files
author
แ„‹แ…ตแ„‹แ…งแ†ซแ„‰แ…ฎ
committed
Valid Anagram
1 parent 026e627 commit 9192ae9

File tree

1 file changed

+35
-0
lines changed

1 file changed

+35
-0
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package leetcode_study
2+
3+
/**
4+
* ๋ฌธ์žฅ์˜ ๋ฌธ์ž ์ˆœ์„œ๋ฅผ ๋ฐ”๊พธ์–ด ์ƒˆ๋กœ์šด ๋‹จ์–ด๋‚˜ ๋ฌธ์žฅ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š”์ง€ ํŒ๋ณ„ํ•˜๋Š” ๋ฌธ์ œ
5+
* ์‹œ๊ฐ„ ๋ณต์žก๋„: O(n)
6+
* -> ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ ์ˆœํšŒํ•˜๋ฉฐ Map ์ž๋ฃŒ๊ตฌ์กฐ์— ๊ฐ’์„ ์ฑ„์›Œ๋„ฃ๋Š” ๊ณผ์ •: O(n)
7+
* -> ์•ŒํŒŒ๋ฒณ ๋ฌธ์ž์—ด ์„ธํŒ… ๊ณผ์ •: O(1)
8+
* -> Map<์•ŒํŒŒ๋ฒณ, ๋นˆ๋„> ์ดˆ๊ธฐํ™” ๊ณผ์ •: O(1)
9+
* -> ์•ŒํŒŒ๋ฒณ ๋น„๊ต ๊ณผ์ •: O(1)
10+
* O(1) + O(1) + O(1) + O(n) => O(n)
11+
*
12+
* ๊ณต๊ฐ„ ๋ณต์žก๋„: O(1)
13+
* -> ์•ŒํŒŒ๋ฒณ ๋นˆ๋„์ˆ˜๋ฅผ ์ €์žฅ Map: O(1)
14+
*/
15+
fun isAnagram(s: String, t: String): Boolean {
16+
val alphaArray = CharArray(26) { 'a' + it}
17+
18+
if (s.length != t.length) return false
19+
20+
val sMap = alphaArray.associateWith { 0 }.toMutableMap()
21+
val tMap = alphaArray.associateWith { 0 }.toMutableMap()
22+
23+
for (i in s.indices) {
24+
sMap[s[i]] = sMap.getValue(s[i]).plus(1)
25+
tMap[t[i]] = tMap.getValue(t[i]).plus(1)
26+
}
27+
28+
for (alphabet in alphaArray) {
29+
if (sMap[alphabet] != tMap[alphabet]) {
30+
return false
31+
}
32+
}
33+
34+
return true
35+
}

0 commit comments

Comments
ย (0)