반응형
포인트
1. Anagram 인지를 확인을 하는 알고리즘
2. 본인은 이 문제를 풀때 정렬을 하고 순회를 하여 요소가 다르면 다르 Anagram 인지를 판단하는 메소드를 작성을 하였습니다. 하지만, 이는 불필요할 수 있기 때문에 해시 적인 요소를 사용한 코드가 있어서 그것을 토대로 수정을 하였습니다.
🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다.
c++
class Solution {
public:
bool isAnagram(string s, string t) {
sort(s.begin(), s.end());
sort(t.begin(), t.end());
if(s.size()!=t.size()) return false;
for(int i=0; i<s.size(); i++){
if(s[i]!=t[i]) return false;
}
return true;
}
bool isAnagram2(string s, string t){
if(s.size()!=t.size()) return false;
int counter[26] = {0,};
for(int i=0; i<s.size(); i++){
counter[s[i]-'a']+=1;
counter[t[i]='a']-=1;
}
for(auto ele : counter){
if(ele!=0) return false;
}
return true;
}
};
python
class Solution:
def isAnagram(self, s: str, t: str) -> bool:
a = list(s)
b = list(t)
a.sort()
b.sort()
if(len(a)!=len(b)):
return False
for i in range(len(a)):
if(a[i]!=b[i]):
return False
return True
def isAnagram2(self, s: str, t: str) -> bool:
counter =[0 for _ in range(26)]
for i in range(len(s)):
counter[s[i]-'a']+=1
counter[t[i]-'a']-=1
for ele in counter:
if(ele!=0):
return False
return True
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] 핸드폰 번호 가리기 (0) | 2021.01.22 |
---|---|
[알고리즘] Valid Parentheses (0) | 2021.01.21 |
[알고리즘] Contains Duplicate (0) | 2021.01.21 |
[알고리즘] Reverse String (0) | 2021.01.21 |
[알고리즘] Shuffle the Array (0) | 2021.01.19 |
댓글