LeetCode刷题(17)~有效的字母异位词
题目描述
给定两个字符串 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)~有效的字母异位词相关推荐
- Leetcode刷题100天—49. 字母异位词分组( 排序)—day37
前言: 作者:神的孩子在歌唱 大家好,我叫运智 49. 字母异位词分组 难度中等847收藏分享切换为英文接收动态反馈 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. ...
- LeetCode简单题之有效的字母异位词
题目 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词. 示例 1: 输入: s = ...
- 【LeetCode】【HOT】49. 字母异位词分组(递归)
[LeetCode][HOT]49. 字母异位词分组 文章目录 [LeetCode][HOT]49. 字母异位词分组 package hot;import java.util.ArrayList; i ...
- Leetcode每日一题:242.有效的字母异位词
如有错误,感谢指正! // // Created by Administrator on 2020/3/31. // #include <iostream> #include <st ...
- LeetCode 2186. 使两字符串互为字母异位词的最少步骤数
文章目录 1. 题目 2. 解题 1. 题目 给你两个字符串 s 和 t .在一步操作中,你可以给 s 或者 t 追加 任一字符 . 返回使 s 和 t 互为 字母异位词 所需的最少步骤数. 字母异位 ...
- LeetCode 438. 找到字符串中所有字母异位词(滑动窗口)
1. 题目 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引. 字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100 ...
- (进阶)LeetCode(242)——有效的字母异位词(JavaScript)
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 示例1: 输入: s = "anagram", t = "nagaram" 输 ...
- LeetCode 438. 找到字符串中所有字母异位词(双指针+滑动窗口)
题目描述 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引. 字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100. ...
- Java实现 LeetCode 438 找到字符串中所有字母异位词
438. 找到字符串中所有字母异位词 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引. 字符串只包含小写英文字母,并且字符串 s 和 p ...
- LeetCode:438. 找到字符串中所有字母异位词(简单易懂)
一.题目描述: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引.不考虑答案输出的顺序. 异位词 指由相同字母重排列形成的字符串(包括相同的字符串). 示例 ...
最新文章
- SAP 730模糊查询时不可以输入连续的汉字问题解决方案
- Android 获取外网IP,实测有效
- 大归因+小归因,先崛网络帮你还原SEM的真实价值
- Windows驱动—VS2010+WDK配置驱动开发环境
- 干货集中营 ReactiveCocoa+RXSwift+MVVM
- android 触摸事件 控制,Android笔记:触摸事件的分析与总结----TouchEvent处理机制
- python 微信公众号-回调模式验证url
- SylixOS中AARCH64跳转表实现原理
- Hive vs HBase (配合使用才是最佳方案)
- EasyOrtho卫星影像处理软件
- 手机修图软件测试,10款好用的手机图片编辑器软件排行榜
- Mysql报错 Error querying database. Cause java.sql.SQLSyntaxErrorException
- C/C++ DNS 查询IP地址
- 使用vue简单实现音乐播放器
- ACM与IEEE双Fellow、华人女计算机科学家周以真:可信 AI,未来可期
- 上海计算机学业水平考试,上海信息科技学业水平考试复习资料整理——计算机系统.pdf...
- fortran与java的区别_fortran与c或java比较
- 自身的优势--抱怨,读《象与骑象人》有感
- 汉诺塔问题详解 递归实现 C语言
- 基于更深卷积网络的大规模图像识别