LeetCode探索之旅(70)-242有效的变位

继续刷LeetCode,第242题,判断两个字符串是否是有效的变位,是将一个字符串中的字母进行换位。

分析:
方法一:既然只是错位,那么可以对两个字符串进行排序,然后比较两个字符串是否相等;
方法二:统计每个字母出现的次数,最后比较两个字符串中字母出现次数是否相等,判断是否是错位的;

问题:
1、审题要仔细,是错位而不是回文;

附上C++代码1:

class Solution {
public:
    bool isAnagram(string s, string t) {
        if(s.empty()&&t.empty())
            return true;
        else if(s.empty()||t.empty())
            return false;
        sort(s.begin(),s.end());
        sort(t.begin(),t.end());
        if(s==t)
            return true;
        else
            return false;
        
    }
};

附上C++代码2:

class Solution {
public:
    bool isAnagram(string s, string t) {
        vector temp(26,0);
        if(s.length()!=t.length())
            return false;
        for(int i=0;i

附上Python代码1,Runtime为84ms:

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        if sorted(s)!=sorted(t):
            return False
        else:
            return True

附上Python代码2,Runtime为40ms:

class Solution:
    def isAnagram(self, s: str, t: str) -> bool:
        if len(s)!=len(t):
            return False
        for word in set(s):
            if s.count(word)!=t.count(word):
                return False
        return True

你可能感兴趣的:(代码训练)