728x90
반응형
Anagram
단어나 문장을 구성하고 있는 문자의 순서를 바꾸어 다른 단어나 문장을 만드는 놀이
예시
- 미개 -> 개미
-
stressed -> desserts
저는 sort와 hashmap을 이용해서 풀었습니다.
// Complete the sherlockAndAnagrams function below.
int sherlockAndAnagrams(string s) {
int answer = 0;
unordered_map<string,int> anagramHash;
for(int i = 0; i < s.length(); i++){
string presentString = "";
for(int j = i; j < s.length(); j++){
presentString += s[j];
sort(presentString.begin(),presentString.end());
unordered_map<string,int> :: iterator anagramIter = anagramHash.find(presentString);
if(anagramHash.size() > 0 && anagramIter != anagramHash.end()){
int num = anagramIter->second;
answer+= num;
anagramHash.erase(presentString);
anagramHash.insert(make_pair(presentString,num+1));
}
else
anagramHash.insert(make_pair(presentString,1));
}
}
return answer;
}
반응형
'algorithm' 카테고리의 다른 글
[algorithm] 테트로미노 (0) | 2020.10.28 |
---|---|
[algorithm] 백준 - 다음 순열 (0) | 2020.10.28 |
[algorithm] 최대 공배수, 최소 공배수 (0) | 2020.10.27 |
[algorithm] Max Array Sum - 답있음 주의 (0) | 2020.04.05 |
[algorithm] Fraudulent Activity Notifications (Hackerrank) - 답있음 주의 (0) | 2020.03.18 |