https://leetcode.com/problems/valid-anagram/
Input: s = "anagram", t = "nagaram"
Output: true
Input: s = "rat", t = "car"
Output: false
두 string이 같은 문자열인지 확인한다. (재 배열해서 같은 문장이 될 수 있는지)
class Solution {
public:
bool isAnagram(string s, string t) {
//여기서 둘이 size가 애초에 다르면 바로 return 시켜줄수도 있겠다.
std::unordered_map<char, int> umap;
for (int i = 0; i < s.size(); ++i)
{
if (umap.find(s[i]) != umap.end())
{
umap[s[i]]++;
}
else
{
umap[s[i]] = 1;
}
}
for (int i = 0; i < t.size(); ++i)
{
if (umap.find(t[i]) != umap.end())
{
umap[t[i]]--;
if (umap[t[i]] < 0)
return false;
}
else
return false;
}
for (int i = 0; i < umap.size(); ++i)
{
if (umap[i] != 0)
return false;
}
return true;
}
};
Runtime: 12 ms, faster than 59.76% of C++ online submissions for Valid Anagram.
Memory Usage: 7.5 MB, less than 56.87% of C++ online submissions for Valid Anagram.