有谁认识做微网站的,营销型网站网站,微信网站需要域名吗,不拦截网站的浏览器题型#xff1a;字符串、哈希表、排序
链接#xff1a;242. 有效的字母异位词 - 力扣#xff08;LeetCode#xff09;
来源#xff1a;LeetCode
题目描述
给定两个字符串 s 和 t #xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。
注意#xff1a;若 s 和 …题型字符串、哈希表、排序
链接242. 有效的字母异位词 - 力扣LeetCode
来源LeetCode
题目描述
给定两个字符串 s 和 t 编写一个函数来判断 t 是否是 s 的字母异位词。
注意若 s 和 t 中每个字符出现的次数都相同则称 s 和 t 互为字母异位词。
题目样例
示例 1:
输入: s anagram, t nagaram
输出: true示例 2:
输入: s rat, t car
输出: false
提示:
1 s.length, t.length 5 * 104s 和 t 仅包含小写字母
题目思路
一开始因为看到是个哈希表的题目所以想用哈希表来做。但平时都是用数组来实现哈希结构这种【英文字母】1的所以考虑用一个int[26]来表示26个英文字母的出现次数然后当某个字母的次数为-1代表次数不够用(即不满足条件)
但看到题解发现有一种“暴力法”——排序两个字符串然后比较——归根结底还是因为字母异位词的字母以及个数是相同的所以排序后字符串如果相同那就是字母异位串
C代码
先上【排序】代码
class Solution {
public:bool isAnagram(string s, string t) {//排序后看看两个字符串是否相等if(s.length() ! t.length())return 0;sort(s.begin(),s.end());sort(t.begin(),t.end());return st;}
};
【数组哈希】代码 class Solution {
public:bool isAnagram(string s, string t) {// 哈希表实现// 长度不等一定不对if(s.length() ! t.length())return 0;//数组实现哈希结构int number[26]{};for(auto cHar : s){number[cHar-a];}for(int i0;it.length();i){--number[t[i]-a];if(number[t[i]-a]0)return 0;}return 1;}
};
结算页面
感觉这样比较好