1. 程式人生 > >【初級算法】15. 有效的字母異位詞

【初級算法】15. 有效的字母異位詞

color isa 算法 pre 返回 bool 一個 () AS

題目:

給定兩個字符串 s 和 t ,編寫一個函數來判斷 t 是否是 s 的一個字母異位詞。

例如,
s = "anagram",t = "nagaram",返回 true
s = "rat",t = "car",返回 false

註意:
假定字符串只包含小寫字母。

提升難度:
輸入的字符串包含 unicode 字符怎麽辦?你能能否調整你的解法來適應這種情況?

1,解題思路:

本題比較簡單,直接統計兩個字符串中128個字符出現的個數,然後就比較數量是否相等即可。

class Solution {
public:
    bool isAnagram(string s, string
t) { map<char,int> maps; map<char,int> mapt; if(s.size()!=t.size()){ return false; } for(int i = 0;i < s.size();++i){ if(maps.find(s[i])!=maps.end()){ maps[s[i]] += 1; }else{ maps[s[i]]
= 1; } if(mapt.find(t[i])!=mapt.end()){ mapt[t[i]] += 1; }else{ mapt[t[i]] = 1; } } for(int i = 0;i < t.size();++i){ if(maps[s[i]]!=mapt[s[i]]){ return false; } }
return true; } };

【初級算法】15. 有效的字母異位詞