写出一个函数 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;
}
};
本文介绍了一个简单的函数用于判断两个字符串是否可以通过重新排列字符变为相同的字符串。通过使用哈希表(unordered_map),该函数实现了高效的判断过程,达到了O(n)的时间复杂度。
681

被折叠的 条评论
为什么被折叠?



