242. Valid Anagram

来源:互联网 发布:java后端服务器运行 编辑:程序博客网 时间:2024/06/08 01:35

Given two strings s and t, write a function to determine if t is an anagram of s.

For example,
s = “anagram”, t = “nagaram”, return true.
s = “rat”, t = “car”, return 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?

方法1:直接对两个字符串排序然后比较。

代码1:

class Solution {public:    bool isAnagram(string s, string t) {        sort(s.begin(),s.end());        sort(t.begin(),t.end());        return s==t;    }};

方法2:用unordered_map记录字符出现的次数,如果一个字符在s中出现对应的值就加一,如果在t中出现就减一。最后如果有字符对应的值不为0说明两字符串含有的元素不一样。

代码2:

class Solution {public:    bool isAnagram(string s, string t) {        if(s.size()!=t.size()) return false;        int n=s.size();        unordered_map<char,int>count;        for(int i=0;i<n;i++)        {            count[s[i]]++;            count[t[i]]--;        }        for(auto c:count)        {            if(c.second) return false;        }        return true;    }};
0 0
原创粉丝点击