-
[LeetCode] Valid Anagram개인 공부/알고리즘 2021. 5. 8. 07:30
Valid Anagram
- My Solution :
class Solution { public boolean isAnagram(String s, String t) { if (s.length() != t.length()) return false; char [] sArray = s.toCharArray(); char [] tArray = t.toCharArray(); Arrays.sort(sArray); Arrays.sort(tArray); if (Arrays.equals(sArray, tArray)) return true; else return false; } }
- 마지막에 그냥
return Arrays.equals(sArray, tArray)
라고 작성하면 되는 거였다..ㅠㅠ - .sort() 메소드 사용할 경우에도 시간 복잡도는 O(nlogn)
👀 다른 Solution
- Hash Table 사용
- s의 문자를 삽입할 때는 1을 더하고 t의 문자를 삽입할 때는 1을 감소한다. 그리고 해시 테이블의 최종 value가 0이 아닌지, 또는 s 문자 삽입하고 t 문자 삽입하면서 value가 음수가 되는지를 확인한다. (괄호 검사 알고리즘이랑 비슷한 느낌...??)
- 만약 input에 유니코드 문자가 포함된다면 해시 테이블을 사용할 것.
비록 난이도가 easy에.. 정말 기본적인 접근법이었지만 모범 답안이랑 얼추 비슷해서 기분이.. 좋다. 하하하..^_^
'개인 공부 > 알고리즘' 카테고리의 다른 글
스레드 이진 트리 (Threaded Binary Tree) (0) 2021.10.10 [GeekforGeeks] Key Pair (0) 2021.05.30 [LeetCode] Climbing Stairs (0) 2021.05.18 [LeetCode] Flip Equivalent Binary Trees (0) 2021.05.16 [Leetcode] Valid Parentheses (0) 2021.04.25