每日一练(44):有效的字母异位词

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

给定两个字符串 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 * 104


s 和 t 仅包含小写字母


来源:力扣(LeetCode)


链接:https://leetcode-cn.com/probl...


方法一:排序


思路分析


t 是 s 的异位词等价于「两个字符串排序后相等」。因此我们可以对字符串 s 和 t 分别排序,看排序后的字符串是否相等即可判断。此外,如果 s 和 t 的长度不同,t 必然不是 s 的异位词。


bool isAnagram(string s, string t) {
    if (s.length() != t.length()) {
        return false;
    }
    sort(s.begin(), s.end());
    sort(t.begin(), t.end());
    return s == t;
}


方法二:哈希表


思路分析


由于字符串只包含 26 个小写字母,因此我们可以维护一个长度为 26 的频次数组 table,先遍历记录字符串 s 中字符出现的频次,然后遍历字符


串 t,减去 table 中对应的频次,如果出现 table[i]<0,则说明 tt 包含一个不在 s 中的额外字符,返回 false 即可


bool isAnagram(string s, string t) {
    if (s.length() != t.length()) {
        return false;
    }
    vector<int> table(26, 0);
    for (auto &ch : s) {
        table[ch - 'a']++;
    }
    for (auto &ch : t) {
        table[ch - 'a']--;
        if (table[ch - 'a'] < 0) {
            return false;
        }
    }
    return true;
}


目录
相关文章
打印文档即提示Print driver host for 32bit applications
主机win7 32位系统,打印一切正常,共享打印机后,客户机为win7 64位系统连接该共享打印机,连接成功,驱动安装正常,x64驱动,客户机打印测试页正常,但打印文档即提示Print driver host for 32bit applications。
9667 0
打印文档即提示Print driver host for 32bit applications
|
缓存 计算机视觉 数据格式
成功解决cv2.imwrite(filename, img)代码输出中文文件乱码的问题(cv2.imencode方法解决
成功解决cv2.imwrite(filename, img)代码输出中文文件乱码的问题(cv2.imencode方法解决)
成功解决cv2.imwrite(filename, img)代码输出中文文件乱码的问题(cv2.imencode方法解决
|
存储 Android开发
【错误记录】Android 模拟器安装应用报错 ( INSTALL_FAILED_INSUFFICIENT_STORAGE )
【错误记录】Android 模拟器安装应用报错 ( INSTALL_FAILED_INSUFFICIENT_STORAGE )
1870 0
【错误记录】Android 模拟器安装应用报错 ( INSTALL_FAILED_INSUFFICIENT_STORAGE )
|
SQL 缓存 网络协议
网络信息安全实验 — 网络攻击技术实验(Kali系统,John、lc7、arpspoof、ettercap、SQL注入...)
本人深感网络安全实验有点麻烦,花了一个晚上弄了部分,特此将笔记贡献造福后人,个人能力有限,还会继续更新。。。 汇报题目:**15分钟教你用 Python 写一个 arpspoof**(课件准备ing,如果弄完后续补上) 第一次网络安全实验(密码学)也是我做的,这里先放个自制工具:[Java实现密码学工具,集成了对称加密算法DES,AES,IDEA,公开加密算法RSA,ECC,散列算法MD5,SHA1,CRC32,以及RSA,DSA,ECDSA数字签名验证示例。](https://blog.csdn.net/weixin_43734095/article/details/105303562)
2167 0
网络信息安全实验 — 网络攻击技术实验(Kali系统,John、lc7、arpspoof、ettercap、SQL注入...)
|
架构师 程序员
谈谈技术能力
在程序员中,围城现象非常严重,是技术人在职业发展过程中必定会面临的困境。但要回答清楚这个问题,其根源不在于是写不写代码或者代码量的多少,其本质还是要回到什么叫技术能力以及如何提升技术能力这个根节点上来。我把我的一些观察和思考总结下来,供大家参考。
1494 95
谈谈技术能力
|
安全 Linux Docker
容器新体验 - Rootless Container + cgroup V2
![image.png](https://ata2-img.oss-cn-zhangjiakou.aliyuncs.com/145b98103c9bcd945b81c9463fab1867.png) 在2020年12月最新的 Docker 20.10 版本中,其中两个关键的特性发布揭示了容器运行时技术发展一些新方向。 首先是 Cgroup V2 已经被正式支持,虽然这个功能对最终用户很
5184 114
容器新体验 - Rootless Container + cgroup V2
|
数据处理
PIE-engine 教程 ——坡度、坡向、山阴、粗糙度计算和显示案例分析
PIE-engine 教程 ——坡度、坡向、山阴、粗糙度计算和显示案例分析
707 0
PIE-engine 教程 ——坡度、坡向、山阴、粗糙度计算和显示案例分析
|
存储 小程序 算法
面试官问如何解决 AtomicInteger “ABA“ 问题
面试官问如何解决 AtomicInteger “ABA“ 问题
996 0
面试官问如何解决 AtomicInteger “ABA“ 问题
|
Windows
win10永久设置护眼颜色
win10怎样永久设置护眼颜色,注册表改了以后重新开机又回到了原来的颜色,怎样才能永久设置?
2899 0
win10永久设置护眼颜色
|
SQL 存储 机器学习/深度学习
Hadoop、Hive、Spark 之间的关系?
今天我们就对 Hadoop、Hive、Spark 做下分析对比。
1553 0
Hadoop、Hive、Spark 之间的关系?