LeetCode 242. 有效的字母异位词

Posted yy-1046741080

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode 242. 有效的字母异位词相关的知识,希望对你有一定的参考价值。

题意: 字母异位词,即不在意字符的顺序,只要字符种类和各种字符个数一样就符合字母异位词。


解题思路一:因为题目告诉你,只使用小写字母。  因此只需要使用计数排序,记录元素的数目就行。(也可以理解为hash)

 

 1 bool isAnagram(string s, string t) {
 2         if(s.size()!=t.size()){
 3             return false;
 4         }
 5         array<int,26> a1{0},a2{0};  // 初始化不为0;
 6         // ostream_iterator<int> os{cout," "};  // 采用迭代器进行输出:ostream_iteraotr
 7         // copy(begin(a1),end(a1),os);  // copy
 8         for(auto& p:s){   //auto& p:string ; char
 9             a1[p-a]++;
10         }
11         for(auto& p:t){
12             a2[p-a]++;
13         }
14         for(int i=0;i<26;i++){
15             if(a1[i]!=a2[i]){
16                 return false;
17             }
18         }
19         return true;
20     }
  • 使用array需要进行初始化,采用列表初始化:{} ,只要将第一个初始为0,那么接下来的元素都会进行初始化0。

 

拓展思考:如果是Unicode码,那么必须用map(有序的),算法大致思路不变。

 

以上是关于LeetCode 242. 有效的字母异位词的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode-242-有效的字母异位词

leetcode 242. 有效的字母异位词

leetcode 242. 有效的字母异位词

leetCode242 有效的字母异位词

LeetCode 242. 有效的字母异位词

LeetCode 242. 有效的字母异位词(Valid Anagram)