leetcode 242 Valid Anagram

原题:
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.
大意:
给你一个单词,然后再给你另外一个单词。问你这第二个单词是不是第一个单词打乱顺序的结果。

class Solution
{
    int has[27];
public:
    bool isAnagram(string s, string t)
    {
        if(s.size()!=t.size())
            return false;
        memset(has,0,sizeof(has));
        for(int i=0;i<s.size();i++)
            has[s[i]-'a'+1]++;
        for(int i=0;i<t.size();i++)
        {
            has[t[i]-'a'+1]--;
            if(has[t[i]-'a'+1]<0)
                return false;
        }
        for(int i=0;i<27;i++)
            if(has[i]!=0)
            return false;
        return true;
    }
};

解答:
如果第二个单词是第一个仅仅单词打乱的结果,那所用的字母和字母的数量应该是一样的,记录一个has表记录用过的字母的数量,判断下一个单词即可

你可能感兴趣的:(LeetCode)