문제
Two phrases are anagrams if they contain exactly the same letters the same number of times, ignoring case, spaces and punctuation.
Implement is_anagram(first, second).
Input
first: The first phrase. second: The second phrase.
Output
Return true if the phrases are anagrams.
제약 조건
0 ≤ length of each ≤ 10,000 (ASCII)
예시
입력:
first = "Listen"
second = "Silent"
예상 출력:
expected = True
입력:
std::string first = "Listen";
std::string second = "Silent";
예상 출력:
bool expected = true;
입력:
string first = "Listen";
string second = "Silent";
예상 출력:
bool expected = true;
설명
Both use e, i, l, n, s, t once each.
입력:
first = "apple"
second = "paddle"
예상 출력:
expected = False
입력:
std::string first = "apple";
std::string second = "paddle";
예상 출력:
bool expected = false;
입력:
string first = "apple";
string second = "paddle";
예상 출력:
bool expected = false;
설명
The letters and counts differ.
접근 방법
먼저 스스로 풀어 본 뒤 힌트를 하나씩 열어 보세요.
힌트 1
Remove non-letters and ignore case before comparing.
힌트 2
Count character frequencies for both phrases, or sort their normalized forms.
힌트 3
Punctuation and spaces should not affect the result.
예상 복잡도
O(n) time, O(1) extra space
참고 자료
이 문제는 CodeUtility에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.