Leetcode 242.有效的字母异位词(哈希表)
传送门:力扣
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。
示例 1:输入: s = "anagram", t = "nagaram" 输出: true
示例 2:输入: s = "rat", t = "car" 输出: false
用暴力枚举两层for循环的时间复杂度是O(n*n)
用哈希表的时间复杂度是O(1)
用哈希表来保存s字符串所有字符的出现次数,有点类似之前接触的桶排序思想。再进行t字符串所有字符的出现。操作是做两个for循环去分别循环s,t字符串。s字符串出现的所有字符hash保存自增,t字符串出现的所有字符在hash中进行自减操作,之后在单对hash表检索是否有元素不是0.
大开眼界的是string是用字符数组封装的,所以也可以直接使用 字符串名称.size()来获取字符串长度。非常方便。
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
using namespace std;class Solution {
public:bool isAnagram(string s, string t) {int record[26] = { 0 };for (int i = 0; i < s.size(); i++) {// 并不需要记住字符a的ASCII,只要求出一个相对数值就可以了record[s[i] - 'a']++;}for (int i = 0; i < t.size(); i++) {record[t[i] - 'a']--;}for (int i = 0; i < 26; i++) {if (record[i] != 0) {// record数组如果有的元素不为零0,说明字符串s和t 一定是谁多了字符或者谁少了字符。return false;}}// record数组所有元素都为零0,说明字符串s和t是字母异位词return true;}
};
int main() {Solution solution;cout << solution.isAnagram("anagram", "nagaram") << endl;cout << solution.isAnagram("cat", "mat") << endl;
}
Leetcode 242.有效的字母异位词(哈希表)相关推荐
- 127. Leetcode 242. 有效的字母异位词 (哈希表)
class Solution:def isAnagram(self, s: str, t: str) -> bool:record = [0] * 26for i in range(len(s) ...
- LeetCode 242. 有效的字母异位词 (计数排序思想字符处理)
242. 有效的字母异位词 题意: 任意给定两个单词字符串,判断这两个字符串是否是字母异位词 思路: 先判断字符串长度是否相等 将s字符串每个字母映射到数组中,在对应位置++ 将t字符串每个字母映射到 ...
- Java实现 LeetCode 242 有效的字母异位词
242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 示例 1: 输入: s = "anagram", t = " ...
- LeetCode 242. 有效的字母异位词【哈希表】
242. 有效的字母异位词 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词. 示例 ...
- leetcode:242 : 有效的字母异位词
题解: 我们可以用一个数组来统计字符串中各个字母出现的次数. 通过比较各自的统计数组的相同与否来判断是不是字母异位词 有题目可知道字母都是小写的,所以统计的数组大小为26即可. bool isAnag ...
- leetcode——242. 有效的字母异位词
问题描述: 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram& ...
- leetcode 242. 有效的字母异位词 思考分析
题目 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 我们先考虑低阶版本,认为字符只有26种可能,然后将a ~ z的字符映射到数组的索引0 ~ 25,数组中存放的则是 ...
- leetcode 242. 有效的字母异位词
给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 示例 1: 输入: s = "anagram", t = "nagaram" ...
- 小白 LeetCode 242 有效的字母异位词
字母异位词 字符串由相同字母组成,但允许排列顺序不同. 如"aaabbb" 与 "ababab" 是字母异位词, 而"aabb" 与 &qu ...
最新文章
- django基础(一)
- 在Ubuntu下FFmpeg编译,支持x264和x265(HECV)
- 可可肉的奋斗(第一天)2012-12-24
- SQL PL/SQL SQL*PLUS三者的区别
- Spring Boot和数据库初始化
- 机器学习者都应该知道的五种损失函数!
- Spring Boot 打成war包的方法
- 图解Http学习第一章
- ETL学习总结(1)——ETL 十大功能特性详解
- 学java需要学c语言吗?
- 视频动作检测最新发展调研(Action Detection)
- iPhone 的黄金时代已结束!
- java 二维数组动态添加,菜鸟求助: 二维数组如何实现动态接收?
- linux下DHCP服务器设置——让自己的智能手机上自己的wifi网络
- chromium 一些设置 --插件安装
- 18.企业应用架构模式 --- 基本模式
- 管道|符与xargs命令
- MFC 单文档、多文档和对话框
- android modbus 串口,手机Modbus 安卓Modbus调试软件
- Cherno OpenGL 教程