码迷,mamicode.com
首页 > 编程语言 > 详细

【初级算法】15. 有效的字母异位词

时间:2018-05-03 14:28:27      阅读:862      评论:0      收藏:0      [点我收藏+]

标签:unicode   nbsp   包含   span   map   turn   col   class   lse   

题目:

给定两个字符串 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. 有效的字母异位词

标签:unicode   nbsp   包含   span   map   turn   col   class   lse   

原文地址:https://www.cnblogs.com/mikemeng/p/8984832.html

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