LeetCode 242. 有效的字母异位词
242. 有效的字母异位词
难度:easy\color{Green}{easy}easy
题目描述
给定两个字符串 sss 和 ttt ,编写一个函数来判断 ttt 是否是 sss 的字母异位词。
注意: 若 sss 和 ttt 中每个字符出现的次数都相同,则称 sss 和 ttt 互为字母异位词。
示例 1:
输入: s = "anagram", t = "nagaram"
输出: true
示例 2:
输入: s = "rat", t = "car"
输出: false
提示:
- 1<=s.length,t.length<=5∗1041 <= s.length, t.length <= 5 * 10^{4}1<=s.length,t.length<=5∗104
- sss 和 ttt 仅包含小写字母
进阶: 如果输入字符串包含 unicode 字符怎么办?你能否调整你的解法来应对这种情况?
本题和 LeetCode 383. 赎金信 类似。
算法
(字符统计)
ttt 是 sss 的异位词等价于「两个字符串中字符出现的种类和次数均相等」。由于字符串只包含 26 个小写字母,因此我们可以维护一个长度为 26 的频次数组 cnt,先遍历记录字符串 sss 中字符出现的频次,然后遍历字符串 ttt,减去 cnt 中对应的频次,如果出现 cnt[i] < 0,则说明 ttt 包含一个不在 sss 中的额外字符,返回 false 即可。
复杂度分析
-
时间复杂度:O(n)O(n)O(n),其中 nnn 是字符串的长度。需要遍历字符串两次
-
空间复杂度 : O(1)O(1)O(1),仅需要常量的空间来存储。
C++ 代码
class Solution {
public:bool isAnagram(string s, string t) {if (s.size() != t.size()) return false;vector<int> cnt(26, 0);for (auto c : s) {cnt[c - 'a'] ++;}for (auto c : t) {cnt[c - 'a'] --;if (cnt[c - 'a'] < 0) return false;}return true;}
};
进阶C++ 代码
Unicode 是为了解决传统字符编码的局限性而产生的方案,它为每个语言中的字符规定了一个唯一的二进制编码。而 Unicode 中可能存在一个字符对应多个字节的问题,为了让计算机知道多少字节表示一个字符,面向传输的编码方式的 UTF−8 和 UTF−16 也随之诞生逐渐广泛使用。
进阶问题的核心点在于「字符是离散未知的」,因此我们用哈希表维护对应字符的频次即可。
class Solution {
public:bool isAnagram(string s, string t) {unordered_map<char, int> a, b;for (auto c: s) a[c] ++ ;for (auto c: t) b[c] ++ ;return a == b;}
};
相关文章:
LeetCode 242. 有效的字母异位词
242. 有效的字母异位词 难度:easy\color{Green}{easy}easy 题目描述 给定两个字符串 sss 和 ttt ,编写一个函数来判断 ttt 是否是 sss 的字母异位词。 注意: 若 sss 和 ttt 中每个字符出现的次数都相同,则称 sss 和 ttt 互为字…...
力扣mysql刷题记录
mysql刷题记录 刷题链接https://leetcode.cn/study-plan/sql/?progressjkih0qc mysql冲!mysql刷题记录1699. 两人之间的通话次数1251. 平均售价1571. 仓库经理1445. 苹果和桔子1193. 每月交易 I1633. 各赛事的用户注册率1173. 即时食物配送 I1211. 查询结果的质量…...
Linux基础命令-lsof查看进程打开的文件
Linux基础命令-uptime查看系统负载 Linux基础命令-top实时显示系统状态 Linux基础命令-ps查看进程状态 文件目录 前言 一 命令的介绍 二 语法及参数 2.1 使用help查看命令的语法信息 2.2 常用参数 2.2.lsof命令-i参数的条件 三 命令显示内容的含义 3.1 FD 文件描述符的…...
常用电平标准
现在常用的电平标准有TTL CMOS LVTTL LVCMOS LVDS PCI等,下面简单介绍一下各自的供电电源、电平标准及注意事项数字电路中,由TTL电子元件组成电路使用的电平。电平是个电压范围。标准输出高电平(VOH): 2.4V标准输出低电平(VOL):0.4V通常输出高…...
小程序开发注意点
1.组件样式隔离注意点 2.methods方法 3.自定义组件的properties参数 4.自定义组件的事件监听 5.纯数据字段 6.插槽 单个插槽 启用多插槽 使用多个插槽 7.属性绑定实现父传子功能 例如在这里有一个组件为<one></one>,那么可以在组件当中传入参数 &l…...
自行车出口欧盟CE认证,新版自行车标准ISO 4210:2023与ISO 8098:2023发布
2023年1月,国际标准化组织ISO发布了新版“自行车以及儿童自行车的测试标准”,即ISO 4210:2023以及ISO 8098:2023,用于取代了SO 4210:2015以及ISO 8098:2015。新版标准一经发布,立即生效。欧盟标准化委员会C…...
2020蓝桥杯真题回文日期 C语言/C++
题目描述 2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。因为如果将这个日期按 “yyyymmdd” 的格式写成一个 8 位数是 20200202,恰好是一个回文数。我们称这样的日期是回文日期。 有人表示 20200202 是 “千年一遇…...
postman入门到精通之【接口知识准备】(一)
postman入门到精通之【接口知识准备】(一) 目录:导读 前言 接口测试概念 接口测试 接口测试的原理 常用接口测试工具 接口测试基础知识 接口的定义 接口的分类 HTTP接口 Web Service接口 RESTful接口 HTTP请求 统一资源定位符&…...
【算法数据结构体系篇class07】:加强堆
一、手动改写堆(非常重要)!系统提供的堆无法做到的事情:1)已经入堆的元素,如果参与排序的指标方法变化,系统提供的堆无法做到时间复杂度O(logN)调整!都是O(N)的调整!2&am…...
Taro3.x 容易踩坑的点(阻止滚动穿透,弹框蒙层父级定位)
解决弹框滚动的时候,下层也会滚动问题》阻止滚动穿透(react,vue)案例描述:页面展示时需要滚动条才可以显示完整,但是当我们显示弹框的时候,即使不需要滚动条,但是页面仍然可以滚动,并且下层内容会随着滚动变…...
SpringBoot+ActiveMQ-发布订阅模式(消费端)
ActiveMQ消息中间件的发布订阅模式 主题 topictopic生产端案例(配合topic消费端测试):SpringBootActiveMQ Topic 生产端ActiveMQ版本:apache-activemq-5.16.5案例源码:SpringBootActiveMQ-发布订阅DemoSpringBoot集成ActiveMQ Topic消费端的pom.xml<?…...
vscode下使用arduino插件开发ESP32 Heltec WiFi_Kit_32_V3
下载vsCode 添加 arduino 插件 在Arduino IDE 中添加开发板,注意只能用右侧的开发板管理器添加,自己下载之后复制进去的IDE认,但是vsCode不认,搜索ESP32 第一个库里面只有到V2的,没有V3,要安装下面那个 H…...
吐血整理AutoSAR Com-Stack 的配置【基于ETAS】
总目录链接>> AutoSAR入门和实战系列总目录 文章目录01.软件组件和系统说明02.基本软件配置03.系统数据映射04.代码生成05.代码整合06.测试下图显示了基于 AUTOSAR 的 ECU SW 的结构。纵观BSW,大体分为三层。三层模块中,与通信相关的模块称为通信…...
面向对象进阶之元类
6. 元类 Python 中一切皆对象,对象是由类实例化产生的。那么类应该也有个类去产生它,利用 type() 函数我们可以去查看: class A:pass a1 A() print(type(a1)) print(type(A))<class __main__.A> <class type>由上可知…...
【Android AIDL之详细使用】
Android AIDL之详细使用一级目录概述使用场景语法相关编码实践服务端:java文件修改AndroidManifest客户端坑一级目录 概述 AIDL叫Android接口定义语言,是用于辅助开发者完成Android跨进程编程的工具。 从某种意义上说AIDL其实是一个模板,因…...
ASP.NET MVC | 简介
目录 前提 1.教程 2.MVC 编程模式 最后 前提 在学习学过很多课程,但是最主要学的还是ASP.NET MVC这门课程,工作也是用的ASP.NET MVC,所以写一点ASP.NET MVC的东西,大家可以来看看,我自己不会的时候也不用找别的地方…...
95后刚毕业2、3年就年薪50W,才发现,打败我们的不是年龄····
一刷朋友圈,一读公众号,一打开微博,甚至是一和朋友聊天,这些让人焦虑的话题总会铺天盖地的袭来: Ta刚毕业半年,就升职加薪当上了测试主管 (同样是一天24小时,为什么同龄人正在抛弃…...
动态分析和静态分析最主要的区别是什么?
动态分析和静态分析主要的区别是什么? 动态分析和静态分析的主要区别是是否考虑时间因素。 动态分析(dynamic analysis)是相对于静态分析来讲的,动态分析是只改变一下自变量,因变量相应的做出的改变,动态改…...
WebUI 学习笔记
WebUI 学习笔记 背景此插件主要用于在数字孪生方向做 UI 显示的效果。比如一些温度曲线需要显示出来,可以直接用插件,配合html 文件,直接显示出来。 准备工作我们采用4.27 版本进行开发;...
C# 中常见的设计模式附带代码案例
设计模式是一套被广泛应用于软件设计的最佳实践,它们可以帮助开发者解决特定的问题,提高代码的可重用性、可读性和可维护性。本文将介绍 C# 中常见的几种设计模式,并提供相应的示例代码。 工厂模式 工厂模式是一种创建型设计模式,…...
AI人脸隐私卫士效果展示:看它如何精准识别并模糊多人合照
AI人脸隐私卫士效果展示:看它如何精准识别并模糊多人合照 1. 效果展示:从家庭合影到百人合照 1.1 家庭聚会照片处理 想象一下这样的场景:你刚刚参加完一场热闹的家庭聚会,手机里存满了欢乐的合影。这些照片中,有近景…...
GLM-Image WebUI快速上手:无需代码,浏览器直连http://localhost:7860
GLM-Image WebUI快速上手:无需代码,浏览器直连http://localhost:7860 1. 引言:让AI绘画像上网一样简单 想象一下,你有一个绝妙的创意画面在脑海中盘旋——一只戴着礼帽的猫在月球上喝下午茶,或者一座漂浮在云端的未来…...
FLUX.1-dev零基础入门:5分钟学会用ComfyUI生成高质量AI图片
FLUX.1-dev零基础入门:5分钟学会用ComfyUI生成高质量AI图片 1. 为什么选择FLUX.1-dev FLUX.1-dev是由Black Forest Labs开发的开源AI图像生成模型,以其出色的图像质量和类似照片的真实感而闻名。与其他模型相比,它能够更高效地生成艺术感强…...
3分钟免费制作AI视频:零基础也能成为数字导演
3分钟免费制作AI视频:零基础也能成为数字导演 【免费下载链接】auto-video-generateor 自动视频生成器,给定主题,自动生成解说视频。用户输入主题文字,系统调用大语言模型生成故事或解说的文字,然后进一步调用语音合成…...
SPI Flash时序参数详解:如何用Synopsys VIP验证Micron芯片的HOLD时序
SPI Flash时序验证实战:Synopsys VIP在Micron芯片HOLD时序分析中的应用 当硬件验证工程师面对SPI Flash芯片时,时序参数的精确验证往往是项目成败的关键。Micron作为主流存储芯片供应商,其SPI Flash产品广泛应用于嵌入式系统和FPGA设计中&…...
Markdown到PowerPoint转换技术:md2pptx的架构创新与工程实践
Markdown到PowerPoint转换技术:md2pptx的架构创新与工程实践 【免费下载链接】md2pptx Markdown To PowerPoint converter 项目地址: https://gitcode.com/gh_mirrors/md/md2pptx 在技术文档创作和演示文稿制作领域,传统工作流存在显著效率瓶颈。…...
Qwen3-Reranker-0.6B效果展示:代码搜索Query ‘Python list to dict‘重排
Qwen3-Reranker-0.6B效果展示:代码搜索Query Python list to dict重排 今天咱们来聊聊一个特别实用的AI工具——Qwen3-Reranker-0.6B。你可能听说过各种大语言模型,但这个模型有点不一样,它专门干一件事:帮你从一堆文本里找出最相…...
OpenClaw配置备份指南:Qwen3.5-9B环境快速迁移与恢复方法
OpenClaw配置备份指南:Qwen3.5-9B环境快速迁移与恢复方法 1. 为什么需要备份OpenClaw配置? 上周我的主力开发机突然硬盘故障,导致辛苦配置了两个月的OpenClaw环境全部丢失。最痛苦的不是重装软件,而是那些精心调试的模型参数、技…...
VGG‘文艺复兴’背后的思考:从RepVGG看AI模型设计的‘简’与‘繁’哲学
VGG式架构的当代启示:当模型设计遇见"大道至简"的智慧 在深度学习模型架构的演进历程中,我们见证了一场耐人寻味的"轮回"——从早期VGG的极简主义,到Inception、ResNet等复杂多分支结构的盛行,再到如今RepVGG…...
OV7670 UART摄像头驱动开发:基于Camera_LS_Y201的嵌入式图像采集实现
1. Camera_LS_Y201 模块底层驱动技术解析Camera_LS_Y201 是一款基于 OV7670 图像传感器的低成本串口摄像头模组,其核心特征在于通过 UART 接口实现图像数据的一次性整帧传输(Bulk Transfer),而非传统逐行或分包发送方式。该方案由…...
