1,题目要求
Given two strings s and t , write a function to determine if t is an anagram of s.
Example 1:
Input: s = “anagram”, t = “nagaram”
Output: true
Example 2:
Input: s = “rat”, t = “car”
Output: false
Note:
You may assume the string contains only lowercase alphabets.
Follow up:
What if the inputs contain unicode characters? How would you adapt your solution to such case?
给定两个字符串s和t,写一个函数来确定t是否是s的字谜。
注意:
您可以假设该字符串仅包含小写字母。
跟进:
如果输入包含unicode字符怎么办? 您如何使您的解决方案适应这种情况?
2,题目要求
对于这道题,要求判断两个字符串的字母构成是否相同。
在解决上,非常简单,只需要对单词中每个字符出现的次数进行一个统计,利用hash即可,而且使用字符的ASCII码的表示可以很好的扩大字符的表示范围,提高适应性。
3,代码实现
static auto speedup = [](){
ios::sync_with_stdio(false);
cin.tie(nullptr);
return nullptr;
}();
class Solution {
public:
bool isAnagram(string s, string t) {
vector<int> counter (128,0);
for(auto &c : s)
counter[c]++;
for(auto &c : t)
counter[c]--;
for(auto &c : counter){
if(c!=0)
return false;
}
return true;
}
};