力扣 242题 有效的字母异位 记录

题目描述

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。示例 1:
输入: s = "anagram", t = "nagaram"
输出: true示例 2:
输入: s = "rat", t = "car"
输出: false

思路

  1. 检查字符串长度: 函数首先检查两个字符串 s 和 t 的长度是否相同。如果长度不相等,直接返回 false,因为长度不同的字符串不可能是字母异位词。
  2. 初始化哈希表: 使用一个固定大小为26的整型数组 hash 来存储每个字母的频率。数组的每个位置对应一个字母(‘a’ 到 ‘z’),初始值设为0。
  3. 填充哈希表: 遍历字符串 s,对于 s 中的每个字符,通过 s[i] - ‘a’ 计算其在 hash 数组中的索引,并将对应的值增加1。
  4. 修改哈希表以匹配第二个字符串: 遍历字符串 t,同样计算每个字符在 hash
    数组中的索引,但这次将对应的值减少1。这样做的目的是抵消之前对 s 字符的计数,从而检测 t 是否有额外的或缺失的字符。
  5. 检查哈希表的所有值: 遍历 hash
    数组,如果数组中的任何一个值不为0,则意味着至少有一个字符在两个字符串中出现的次数不同。如果发现这样的情况,返回 false。
  6. 返回结果: 如果所有检查都未发现问题,最后返回 true,表示两个字符串是字母异位词。

完整代码

#include<iostream>
#include<string>
using namespace std;class Solution {
public:bool isAnagram(string s, string t) {if(s.size() != t.size()) return false;int hash[26] = {0};for(int i = 0; i < s.size(); i++){hash[s[i] - 'a']++;}for(int i = 0; i < t.size(); i++){hash[t[i] - 'a']--;}for(int i = 0; i < 26; i++){if(hash[i] != 0) return false;}return true;}
};int main()
{Solution s;string str1 = "aee";string str2 = "eae";cout << s.isAnagram(str1, str2) <<endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/23815.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高效学习LabVIEW的方法

学习LabVIEW可以通过系统化课程、在线资源、自学实验、参与论坛、结合实际项目等多角度进行。系统课程提供全面基础&#xff0c;在线资源便于查漏补缺&#xff0c;自学实验强化理解&#xff0c;论坛互动解决疑难&#xff0c;结合实际项目应用提高实践技能。结合项目学习是最高效…

有趣的C语言——我的C语言之路

记录一下关于C语言竞赛重刷的例题&#xff0c;有些真的很有意思&#xff0c;如果你觉得特别简单&#xff0c;那说明你很牛&#xff0c;小弟我甘拜下风&#xff01;! 勿喷 勿喷&#xff0c;仅记录学习历程&#xff08;有些特别基础的就不弄了&#xff0c;弄一些我觉得处理方法很…

Docker 中运行的 MySQL 数据库与 Docker 外部的管理系统连接

步骤 1&#xff1a;运行 MySQL 容器 首先&#xff0c;确保你的 Docker 容器中运行了 MySQL 数据库。 docker run --name mysql-container -e MYSQL_ROOT_PASSWORDmy-secret-pw -d -p 3306:3306 mysql:latest--name mysql-container 为容器命名。-e MYSQL_ROOT_PASSWORDmy-sec…

python3 -m http.server 检查打包前端的项目

python3 -m http.server这是 Python 提供的一个内置的简单 HTTP 服务器。当你在终端中运行 python3 -m http.server 命令时(在对应的打包目录比如dist目录)&#xff0c;Python 会启动一个 HTTP 服务器&#xff0c;它会将当前工作目录下的文件作为静态文件提供给浏览器。这个服务…

LabVIEW软件开发人员的核心能力是什么

LabVIEW软件开发人员的核心能力包括以下几个方面&#xff1a; 1. LabVIEW编程技能 熟练掌握LabVIEW编程语言&#xff1a;包括虚拟仪器&#xff08;VI&#xff09;的创建、数据流编程、图形化编程技巧等。 模块化编程&#xff1a;能够设计和实现模块化的代码结构&#xff0c;便…

python数据分析——正则化

参考资料&#xff1a;活用pandas库 正则化旨在解决模型的过拟合问题。 在实际中&#xff0c;可能存在模型的训练分数很好&#xff0c;而测试分数却很低&#xff0c;这说明模型出现了过拟合问题。正则化通过对系数和变量施加约束来解决模型过拟合的问题。这会导致数据的系数变小…

数据结构与算法之计数排序

目录 前言 计数排序 定义 优缺点 策略 图解 代码实现 结束语 前言 今天是坚持写博客的第20天&#xff0c;时光飞逝&#xff0c;第二个10天即将过去&#xff0c;希望可以继续坚持&#xff0c;光明的未来也在未来等着我们。今天也恰逢高考&#xff0c;祝所有学子一帆风顺…

【DevOps】掌握 Helm:Kubernetes 应用程序部署指南

目录 一、前言 二、什么是 Helm&#xff1f; 三、Helm 的优势 四、Helm 组件 五、安装和配置 Helm 1、先决条件 2、安装 Helm 客户端 3、初始化 Helm 4、添加 Helm Charts 存储库 5、搜索和安装应用程序 5.1、搜索 Helm Charts 5.2、安装应用程序 5.3、自定义应用程…

echarts的toolbox自定义feature标签及事件

1. 需求 在使用echarts图时希望toolbox扩展一些自定义icon和点击事件&#xff0c;而不只是图中这些echarts提供的事件。 2. 文档 属性名类型描述toolbox.featureObject各工具配置项。 feature中除了echarts提供的各个内置的工具按钮外&#xff0c;可以自定义工具按钮。 除…

电脑ip地址查询:快速定位你的网络位置(4种方法)

在互联网的浩瀚海洋中&#xff0c;每台联网的电脑都有一个独特的身份标识&#xff0c;那就是IP地址。无论是进行网络通信、定位问题还是安全防护&#xff0c;了解自己或他人的电脑IP地址都是非常关键的。那么&#xff0c;电脑ip地址查询怎么操作呢&#xff1f;本文将为你提供一…

学习笔记——路由网络基础——缺省(默认)路由

3、缺省(默认)路由 1、定义 缺省路由(默认路由)&#xff1a;是目的地址和掩码都为全0的特殊路由。全0代表任意网络。缺省路由在路由表中的形式为&#xff1a;0.0.0.0/0缺省路由也被叫默认路由。缺省路由优先级比直连路由低 缺省路由是一种特殊的路由&#xff0c;当报文没有在…

Facebook海外户Facebook广告被暂停的原因

有很多伙伴在Facebook广告时&#xff0c;有时会遇到账号被暂停&#xff0c;并通知你违反了哪些规则&#xff0c;那么Facebook广告被暂停的原因有哪些呢&#xff1f;今天小编详细梳理了一些原因&#xff0c;可以往下看哦~ 您的Facebook广告被暂停可能有以下几个原因&#xff1a…

Redis系列之淘汰策略介绍

Redis系列之淘汰策略介绍 文章目录 为什么需要Redis淘汰策略&#xff1f;Redis淘汰策略分类Redis数据淘汰流程源码验证淘汰流程Redis中的LRU算法Redis中的LFU算法 为什么需要Redis淘汰策略&#xff1f; 由于Redis内存是有大小的&#xff0c;当内存快满的时候&#xff0c;又没有…

【Qt】TreeWidget中Item的UserCheckable注意事项,没有出现多选框

1. 异常 开启 ItemIsUserCheckable以后&#xff0c;界面上没有出现多选框。 QTreeWidgetItem *item new QTreeWidgetItem();item->setText(0, "hello");item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsSelectable |Qt::ItemIsEnabled | Qt::ItemIsAuto…

AIGC 介绍与典型应用与亚马逊科技AIGC方案

1、AIGC ( 生成式人工智能 ) 是指可生成全新内容的人工智能技术 从字面意思来看&#xff0c;AIGC 是继 PGC&#xff0c;UGC 之后的新型内容创作方式&#xff0c;可以在创意、表现力、迭代、传播、个性化等方面&#xff0c;充分发挥技术优势&#xff0c;打造新的数字内容生成与…

AXI Quad SPI IP核AXI4接口下的三种操作模式

当选择Enable Performance Mode选项时&#xff0c;AXI4接口包括在内。在该模式下&#xff0c;IP核可以在增强模式下操作&#xff08;未选择启用XIP模式&#xff09;或XIP模式&#xff08;选择启用XIP模式&#xff09;。在性能模式下&#xff0c;AXI4接口用于在DTR和DRR位置的突…

力扣2106.摘水果

力扣2106.摘水果 在下标上做滑窗 二分出左边最远能取到的点j 自己写lowerbound (j,start)这个区间的水果数就是初值 如何判断一个区间是否合法 先往右走再往左走&#xff1a;fruit(right,0) - start fruit(right,0) - fruit(left,0);先往左走再往右走&#xff1a;start - fru…

ActiveMQ 介绍、下载、安装和控制台

ActiveMQ 介绍 Apache ActiveMQ 是一款非常成熟且功能全面的开源消息中间件&#xff0c;由Apache软件基金会维护。它遵循 Java Message Service (JMS) 规范&#xff0c;这意味着它提供了一组标准的 API&#xff0c;允许 Java 应用程序以一种标准化的方式发送和接收消息。 以下…

为何数据仓库需要“分层次”?

在数据驱动的商业世界中&#xff0c;数据仓库是企业决策的心脏。然而&#xff0c;一个高效、可扩展且易于管理的数据仓库&#xff0c;需要精心设计和构建。分层是构建数据仓库的关键策略之一。本文将探讨数据仓库分层的重要性以及它如何帮助企业更好地管理数据。 数据仓库分层…

操作系统期末填空、问答往年考试题总结

1、什么是文件目录&#xff1f;目录管理的要求有哪些&#xff1f; 文件目录是文件控制块FCB的有序集合&#xff0c;一个文件的文件名和对该文件实施控制管理的说明信息称为文件目录。 实现文件按名存取、提高对目录的检索速度、文件共享、允许文件重名。 2、什么是操作系统&…