题目描述

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。

示例 1:

输入: s = "anagram", t = "nagaram"
输出: true

示例 2:

输入: s = "rat", t = "car"
输出: false

说明:
你可以假设字符串只包含小写字母。

解答 By 海轰

提交代码

class Solution {public:bool isAnagram(string s, string t) {unordered_map<char,int> a;for(int i=0;i<s.size();++i)++a[s[i]];for(int i=0;i<t.size();++i){if(a.find(t[i])== a.end()) return false;--a[t[i]];if(a[t[i]]==0)a.erase(t[i]);}return a.empty();}
};

运行结果

思路
        对于第一个string字符串,依次压入哈希表,并统计其次数。然后对第二个string字符串进行遍历:首先查询是否存在,若不存在,则直接return false,反之就对应字符减一,减到为0时,在哈希表中删除这个字符。最后,判断哈希表是否为空,若为空,则return true,反正 false。

C++完整测试代码

#include <iostream>
#include <iterator>
#include <unordered_map>
using namespace std;
bool isAnagram(string s, string t)
{unordered_map<char, int> a;for (int i = 0; i < s.size(); ++i)++a[s[i]];for (int i = 0; i < t.size(); ++i){if (a.find(t[i]) == a.end())return false;--a[t[i]];if (a[t[i]] == 0)a.erase(t[i]);}return a.empty();
}int main()
{string a = "abab";string b = "baba";cout << isAnagram(a, b);return 0;
}

题目来源

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/valid-anagram

LeetCode刷题(17)~有效的字母异位词相关推荐

  1. Leetcode刷题100天—49. 字母异位词分组( 排序)—day37

    前言: 作者:神的孩子在歌唱 大家好,我叫运智 49. 字母异位词分组 难度中等847收藏分享切换为英文接收动态反馈 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. ...

  2. LeetCode简单题之有效的字母异位词

    题目 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词. 示例 1: 输入: s = ...

  3. 【LeetCode】【HOT】49. 字母异位词分组(递归)

    [LeetCode][HOT]49. 字母异位词分组 文章目录 [LeetCode][HOT]49. 字母异位词分组 package hot;import java.util.ArrayList; i ...

  4. Leetcode每日一题:242.有效的字母异位词

    如有错误,感谢指正! // // Created by Administrator on 2020/3/31. // #include <iostream> #include <st ...

  5. LeetCode 2186. 使两字符串互为字母异位词的最少步骤数

    文章目录 1. 题目 2. 解题 1. 题目 给你两个字符串 s 和 t .在一步操作中,你可以给 s 或者 t 追加 任一字符 . 返回使 s 和 t 互为 字母异位词 所需的最少步骤数. 字母异位 ...

  6. LeetCode 438. 找到字符串中所有字母异位词(滑动窗口)

    1. 题目 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引. 字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100 ...

  7. (进阶)LeetCode(242)——有效的字母异位词(JavaScript)

    给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 示例1: 输入: s = "anagram", t = "nagaram" 输 ...

  8. LeetCode 438. 找到字符串中所有字母异位词(双指针+滑动窗口)

    题目描述 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引. 字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100. ...

  9. Java实现 LeetCode 438 找到字符串中所有字母异位词

    438. 找到字符串中所有字母异位词 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引. 字符串只包含小写英文字母,并且字符串 s 和 p ...

  10. LeetCode:438. 找到字符串中所有字母异位词(简单易懂)

    一.题目描述: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引.不考虑答案输出的顺序. 异位词 指由相同字母重排列形成的字符串(包括相同的字符串). 示例 ...

最新文章

  1. SAP 730模糊查询时不可以输入连续的汉字问题解决方案
  2. Android 获取外网IP,实测有效
  3. 大归因+小归因,先崛网络帮你还原SEM的真实价值
  4. Windows驱动—VS2010+WDK配置驱动开发环境
  5. 干货集中营 ReactiveCocoa+RXSwift+MVVM
  6. android 触摸事件 控制,Android笔记:触摸事件的分析与总结----TouchEvent处理机制
  7. python 微信公众号-回调模式验证url
  8. SylixOS中AARCH64跳转表实现原理
  9. Hive vs HBase (配合使用才是最佳方案)
  10. EasyOrtho卫星影像处理软件
  11. 手机修图软件测试,10款好用的手机图片编辑器软件排行榜
  12. Mysql报错 Error querying database. Cause java.sql.SQLSyntaxErrorException
  13. C/C++ DNS 查询IP地址
  14. 使用vue简单实现音乐播放器
  15. ACM与IEEE双Fellow、华人女计算机科学家周以真:可信 AI,未来可期
  16. 上海计算机学业水平考试,上海信息科技学业水平考试复习资料整理——计算机系统.pdf...
  17. fortran与java的区别_fortran与c或java比较
  18. 自身的优势--抱怨,读《象与骑象人》有感
  19. 汉诺塔问题详解 递归实现 C语言
  20. 基于更深卷积网络的大规模图像识别

热门文章

  1. 如何给web页面添加一个水印
  2. html图文阅读,图文混排
  3. 如果你是第一次创业,一定要避免犯这6个致命错误
  4. Captura音频录制测试结论
  5. 转:认知自我,保持真我
  6. 16:9显示器与4:3显示器的显示高度关系 -- 0.82
  7. 基于java的校园宿舍管理系统的设计与实现
  8. csol永恒python宏_【午时已到】【永恒】Python图文评测
  9. 数据库批量操作中SqlParameter参数传递的问题
  10. 学信网查不到学位信息?学位绑定的流程详解