【LeetCode】242. Valid Anagram(考察算法优化)

来源:互联网 发布:龙巫捏脸数据 编辑:程序博客网 时间:2024/05/12 12:29

Question

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.

My code

bool isAnagram(string s, string t) {        sort(s.begin(), s.end());        sort(t.begin(), t.end());        return s==t;    }

However, my solution costs O(n logn).

O(n) solution:

class Solution {public:    bool isAnagram(string s, string t) {        if(s.size() != t.size())    return false;        vector<int> vec(26, 0);        for(auto n : s)            ++vec[n - 'a'];        for(auto n : t)            --vec[n - 'a'];        for(auto n : vec)            if(n != 0)  return false;        return true;    }};
0 0
原创粉丝点击