Leetcode Valid Anagram

OpenSoucre發表於2015-08-02

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.

題目意思:

  給定兩個字串s和t,判斷字串t是否由字串s經過調整位置得到。(注意不是迴文串)

解題思路:

  記錄每個字串中字元出現的次數,如果字串t是由字串s經過調整位置得到,則這兩個字元出現的次數是相等的。

原始碼:

 1 class Solution {
 2 public:
 3     bool isAnagram(string s, string t) {
 4         if(s.size()!=t.size()) return false;
 5         map<char,int> cnt;
 6         for(int i = 0 ; i <  s.size(); ++ i) cnt[s[i]]++;
 7         for(int i = 0; i < t.size(); ++ i) cnt[t[i]]--;
 8         for(map<char,int>::iterator iter = cnt.begin(); iter!=cnt.end(); ++ iter){
 9             if(iter->second!=0)return false;
10         }
11         return true;
12     }
13 };

 

相關文章