242

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

示例 1:

输入: s = "anagram", t = "nagaram"

输出: true

示例 2:

输入: s = "rat", t = "car"

输出: false

说明:

你可以假设字符串只包含小写字母。

进阶:

如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?

思路:只要字母相同就可以。

bool isAnagram(string s, string t) {

        if(s.size() != t.size())

            return false;

        sort(s.begin(),s.end());

        sort(t.begin(),t.end());

        return s == t;

    }

另一个思路:放入哈希map中,只要每个字母的个数相同即可。

bool isAnagram(string s, string t) {

        if(s.size() != t.size())

            return false;

        unordered_map m;

        for(int i = 0;i < s.size();i++)

        {

            m[s[i]]++;

        }

        for(int i = 0;i < t.size();i++)

        {

            if(m[t[i]] > 0)

                --m[t[i]];

            else

                return false;

        }

        return true;

    }

你可能感兴趣的:(242)