어흥
[해커랭크] Anagram (C++) 본문
728x90
반응형
1. 주의할 점
- Alpha[] 배열 초기화 필요
2. 구현
- 파라미터로 넘겨받은 S의 길이가 짝수가 아니면 -1을 반환한다
- Alpha[] 배열을 0으로 초기화한다
- S 문자열의 왼쪽 반에 해당되는 문자가 나타난 횟수를 Alpha[] 배열에 저장한다
- S 문자열의 오른쪽 반에 해당되는 문자의 Alpha[]값이 양수면 -1을 하고 0이라면 Cnt++을 통해 바꿔야 할 문자의 수를 증가시킨다
int alpha[26];
// Complete the anagram function below.
int anagram(string s) {
int len = s.size();
if(len%2==1) return -1;
len/=2;
int cnt=0;
for(int i=0;i<26;i++)
alpha[i]=0;
for(int i=0;i<len;i++)
alpha[s[i]-'a']++;
for(int i=len;i<2*len;i++){
int v = alpha[s[i]-'a'];
if(v) alpha[s[i]-'a']--;
else cnt++;
}
return cnt;
}
728x90
반응형
'알고리즘 > HackerRank' 카테고리의 다른 글
[해커랭크] Alternating Characters (Java) (0) | 2021.03.30 |
---|---|
[해커랭크] Game of Thrones - I (C++) (0) | 2021.03.11 |
[해커랭크] Palindrome Index (C++) (0) | 2021.02.23 |
[해커랭크] Strings: Making Anagrams (C++) (0) | 2021.02.18 |
[해커랭크] Frequency Queries (C++) (0) | 2021.02.17 |
Comments