写出一个函数 anagram(s, t)
判断两个字符串是否可以通过改变字母的顺序变成一样的字符串。
样例
给出 s = "abcd"
,t="dcab"
,返回 true
.
给出 s = "ab"
, t = "ab"
, 返回 true
.
给出 s = "ab"
, t = "ac"
, 返回 false
.
挑战
O(n) time, O(1) extra space
解题思路:
简单。哈希表。如下:
class Solution {
public:
/**
* @param s: The first string
* @param t: The second string
* @return: true or false
*/
bool anagram(string &s, string &t)
{
// write your code here
unordered_map<char,int> m;
for(char c : s)
++m[c];
for(char c : t)
{
if(m[c]<=0)
return false;
else
m[c]--;
}
return true;
}
};