LeetCode() Valid Anagram 有问题!!!

为什么第一个通过,第二个不行呢?

class Solution {
public:
    bool isAnagram(string s, string t) {
        if(s.size() != t.size())
            return false;
        vector<int> coll(26,0);
        for(long i=0;i<s.size();i++)
        {
            coll[s[i]-'a']++;
        }
        for(long i=0;i<s.size();i++)
        {
            if(coll[t[i]-'a'] == 0)
                return false;
            else
                coll[t[i]-'a']--;
        }
        for(auto i:coll)
        {
            if(i != 0)
                return false;
        }
        return true;
    }
};

  

class Solution {
public:
    bool isAnagram(string s, string t) {
        if(s.size() != t.size())
            return false;
        vector<long> coll(26,0);
        for(long i=0;i<s.size();i++)
        {
            coll[s[i]-'a']++;
        }
        for(long i=0;i<s.size();i++)
        {
            if(coll[t[i]-'a'] == 0)
                return false;
            coll[t[i]-'a']--;
        }
        for(int i=0;i<s.size();i++)
            if(coll[i] != 0)
                return false;
        return true;
    }
};

  

原文地址:https://www.cnblogs.com/yanqi110/p/4990931.html