242. Valid Anagram

来源:互联网 发布:浩方对战平台for mac 编辑:程序博客网 时间:2024/05/03 21:20

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 thestring contains only lowercase alphabets.

 

 

解题思路:

只要s和t的字符以及字符所使用的次数相同即返回true。这题中使用的字符都是小写字符,因此可直接使用固定大小的数组作为hash数组,记录字符串中字符出现的次数。。。。

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

还有另一种方法就是使用map记录每个字符出现的次数,过程与上类似。。。



0 0
原创粉丝点击