码迷,mamicode.com
首页 > 其他好文 > 详细

LeetCode 242. 有效的字母异位词

时间:2020-01-27 15:34:30      阅读:75      评论:0      收藏:0      [点我收藏+]

标签:思考   nic   begin   思路   种类   ash   bsp   san   大致   

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


解题思路一:因为题目告诉你,只使用小写字母。  因此只需要使用计数排序,记录元素的数目就行。(也可以理解为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. 有效的字母异位词

标签:思考   nic   begin   思路   种类   ash   bsp   san   大致   

原文地址:https://www.cnblogs.com/yy-1046741080/p/12236074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!