leetcode242. 有效的字母异位词(两种方法map或数组)
生活随笔
收集整理的這篇文章主要介紹了
leetcode242. 有效的字母异位词(两种方法map或数组)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一:題目
二:上碼
1:方法一(map解法)
class Solution { public:bool isAnagram(string s, string t) {/**思路:1.分析題意,這個是要判斷t中的字符出現(xiàn)次數(shù)和s中字符出現(xiàn)的次數(shù)相同2.可以用map<char,int>來做*/map<char,int>m1,m2;map<char,int>:: iterator mt1;map<char,int>:: iterator mt2;for(int i = 0; i < s.size(); i++) {m1[s[i]]++;}for(int i = 0; i < t.size(); i++){m2[t[i]]++;}if(m1.size() == m2.size()){int count = 0;for(mt1 = m1.begin(),mt2 = m2.begin(); mt1 != m1.end(),mt2 != m2.end();mt1++,mt2++){if(mt1->second == mt2->second && mt1->first == mt2->first){count++;}}if(count == m1.size()){return true;} }return false;} };2:方法二(哈希表 數(shù)組)
class Solution { public:bool isAnagram(string s, string t) {/**思路:1.分析題意,這個是要判斷t中的字符出現(xiàn)次數(shù)和s中字符出現(xiàn)的次數(shù)相同2.判斷一個元素是否出現(xiàn)過的場景也應(yīng)該第一時(shí)間想到哈希法,本題中我們是來判斷t中的元素是否在s中出現(xiàn)過3.這里我們選用一個數(shù)組array[26] 來當(dāng)作哈希表,小寫字母[a.z]在數(shù)組中的下標(biāo)范圍為[0.25]4.我們先統(tǒng)計(jì)s中字符的在array[26]中對應(yīng)下標(biāo)出現(xiàn)的個數(shù),然后我們再遍歷t中字符在array中出現(xiàn)了就將其下標(biāo)對應(yīng)的個數(shù)減一,那么最后看看數(shù)組最后的每個值是否均為0,如果都為0,那么我們就可以返回true; */int array[26] = {0};for(int i = 0; i < s.size(); i++){array[s[i] - 'a']++;}for(int j = 0; j < t.size(); j++){array[t[j]-'a']--;}for(int i = 0; i < 26; i++){if(array[i] != 0){return false;}}return true;} };總結(jié)
以上是生活随笔為你收集整理的leetcode242. 有效的字母异位词(两种方法map或数组)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 哪三个方法能快速减肚子,可以轻松甩掉肥肉
- 下一篇: 减肥什么时候喝牛奶最好