创作不易,本篇文章如果帮助到了你,还请点赞 关注支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
更多算法知识专栏:算法分析🔥
给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ
LeetCode题解专栏:【LeetCode刷题笔记】
目录
- 题目链接
- 一、题目描述
- 二、示例
- 三、题目分析
- 解法一
- 代码实现
- 解法二
- 代码实现
题目链接
【LeetCode】242.有效的字母异位词
一、题目描述
给定两个字符串 *s*
和 *t*
,编写一个函数来判断 *t*
是否是 *s*
的字母异位词。
注意: 若 *s*
和 *t*
中每个字符出现的次数都相同,则称 *s*
和 *t*
互为字母异位词。
二、示例
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
三、题目分析
解法一
利用哈希表存储两个字符串中各自重复出现的字符次数,然后遍历比较两个字符串重复字符的哈希表,如果出现次数不同返回false
代码实现
class Solution {
public:
bool isAnagram(string s, string t) {
if(s.length()!=t.length())return false;
unordered_map<char,int> um1,um2; //利用哈希表存储字符出现次数
for(int i = 0;i < s.length();i++)
{
um1[s[i]]++;
}
for(int i = 0;i < t.length();i++)
{
um2[t[i]]++;
}
for(auto i = um1.begin(); i != um1.end(); ++i)
{
if(i->second!=um2[i->first])return false;
}
return true;
}
};
解法二
排序遍历:将两个字符串分别排序,排好序后比较两个字符串,如果不相同返回false
代码实现
class Solution {
public:
bool isAnagram(string s, string t) {
if(s.length()!=t.length())return false;
sort(s.begin(),s.end());
sort(t.begin(),t.end());
if(s != t)return false;
return true;
}
};
大家的点赞、收藏、关注将是我更新的最大动力! 欢迎留言或私信建议或问题。 |
大家的支持和反馈对我来说意义重大,我会继续不断努力提供有价值的内容! |
如果本文哪里有错误的地方还请大家多多指出(●'◡'●) |