Leetcode 初级算法(14)--有效的字母异位词

蹲街弑〆低调 提交于 2020-03-11 00:49:54

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

示例 1:

输入: s = “anagram”, t = “nagaram”
输出: true
示例 2:

输入: s = “rat”, t = “car”
输出: false
说明:
你可以假设字符串只包含小写字母。

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

**分析:**关键是读懂题意,同样个数的字母,不同排列可以满足题意
解答:

class Solution {
public:
    bool isAnagram(string s, string t) {
        if (s.length() != t.length()) {
            return false;
        }
        int sTable[26] = {0};
        int tTable[26] = {0};
        
        for (int i = 0; i < s.length(); i++) {
            sTable[s[i] - 'a']++;
            tTable[t[i] - 'a']++;
        }
        
        for (int i = 0; i < 26; i++) { //26: sTable.length
            if (sTable[i] != tTable[i]) {
                return false;
            }
        }
        return true;
    }
};


标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!