zoukankan      html  css  js  c++  java
  • 242 有效的字母异位词

    • 读懂题目意思

    首先自己都没读懂题目意思,理解了一会儿!

     :s和t字符串的字母组成是一样的,相同的种类和相同的数量,否则就返回错误

    • 思路

    第一种:利用sort函数进行排序,然后判断s和t是否相同

    第二种:建立哈希表,s字符串是根据键值存放数量,t字符串根据键值是减小数量,利用迭代器判断所有的key对应的值是否为零

    • 代码
     1 //想用哈希表,所以用unordered_map,底层是哈希表实现
     2 //用到iterator迭代判断
     3 //第一次犯错,没有考虑s和t的长度是否相等,若相等则进行下一步,不相等直接输出false
     4 class Solution {
     5 public:
     6     bool isAnagram(string s, string t) {
     7         /*unordered_map<char,int>vocabulary;
     8         if(s.size()!=t.size()) return false;
     9         for(int i=0;i<s.size();i++){
    10             ++vocabulary[s[i]];
    11             --vocabulary[t[i]];
    12         }
    13         unordered_map<char,int>::iterator it;
    14         for(it=vocabulary.begin();it!=vocabulary.end();it++){
    15             if(it->second!=0)return false;
    16         }
    17         return true;*/
    18         
    19     }
    20 };
     1 //直接对s和t进行排序,然后判断
     2 //此方法时间复杂度和空间复杂度都高
     3 class Solution {
     4 public:
     5     bool isAnagram(string s, string t) {
     6        sort(s.begin(),s.end());
     7         sort(t.begin(),t.end());
     8         if(s==t)return true;
     9         return false;
    10         
    11     }
    12 };
  • 相关阅读:
    剑指Offer(链表)-从尾到头打印链表
    Java数据结构与算法-链表
    剑指Offer(数组)-数组中重复的数字
    剑指Offer(数组)-二维数组的查找
    Java冒泡排序法实现
    springMVC全局异常配置
    CookieUtil工具类
    算法
    Java
    算法
  • 原文地址:https://www.cnblogs.com/hehesunshine/p/11686179.html
Copyright © 2011-2022 走看看