Leetcode242有效的字母异位词(java实现,详细易懂想学会的进!!!)

今天给大家分享的题目是leetcode242有效的字母异位词
我们先看题目描述:
在这里插入图片描述
Chatgpt中对于字母异位词的解释如下:
字母异位词是指由相同的字母组成但顺序不同的单词。换句话说,字母异位词具有相同的字母,只是排列顺序不同
简单的将就是字母相同,但是顺序不同。
特别地,在leetcode中的题目判题标准中,“abc”与“abc”也算字母异位词。
好了下面来讲下我得思路。
解题思路:
首先,我们可以开辟一个长度为26的数组,用于统计每个字母出现的次数。然后我们遍历第一个传入的字符串s,将字符串中出现的字母存放在数组中去,并进行统计。然后我们对字符串t进行遍历,并用数组中存放的字符串s所统计的字母减去t中出现的字母,如果说最后数组为0,表示是字母异位词,否则就不是。
下面我们来结合代码进行进一步梳理思路:

 public boolean isAnagram(String s, String t) {int arr[]=new int[26];int i=0;//遍历字符串sfor (i=0;i<s.length();i++){arr[s.charAt(i)-'a']++;}//遍历字符串tfor (i=0;i<t.length();i++){arr[t.charAt(i)-'a']--;}//遍历数组for (i=0;i<arr.length;i++){if (arr[i]!=0){return false;}}return true;}

可能大家看了代码之后,最不能理解的是arr[s.charAt(i)-'a']++这一点是什么意思,我们首先调用s.charAt(i)获取字符串中的每个字母,加入我们的s是”abc“,当i=0时,s.charAt(0)就为a,然后a-a的结果就是0,arr[0]++也就是数组下标为0的位置进行数值+1,因为我们数组初始化时默认赋值全部为0,这样就可以对字母出现的次数进行统计了。然后对字符串t同样也是相同到底,只不过字符串s在统计字母时对下标位置进行++,而字符串t则是进行–。
那么这道题的代码并不难,难的是这道题的思路,如果是第一次接触到本道题的同学可以结合我的思路和代码进行好好梳理一下。
那么今天的题目分析及代码讲解就到这里结束了,如果觉得博主写的对你有帮助的话麻烦给博主点个小爱心谢谢O(∩_∩)O!

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

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

相关文章

华云安攻击面发现及管理平台体验

省流&#xff1a; 无需【立即咨询】即可体验&#xff0c;开通即可查看演示数据&#xff0c;公开报价 界面&#xff1a; 界面简洁&#xff0c;要点清晰&#xff0c;可以清晰的看到暴露面及攻击面信息 功能&#xff1a; 资产发现&#xff1a;主域名发现、子域名发现、 IP 发现…

Set和Map

一、Set的介绍 1.1、Set相关文档介绍 cplusplus.com/reference/set/set/?kwset 1. set是按照一定次序存储元素的容器 2. 在set中&#xff0c;元素的value也标识它(value就是key&#xff0c;类型为T)&#xff0c;并且每个value必须是唯一的。 set中的元素不能在容器中修改…

时空序列问题的本质和底层逻辑

本质&#xff1a;Still need to polish this. 底层逻辑&#xff1a;Still need to polish this.See you pretty soon. Reference 【时空序列预测】什么是时空序列问题&#xff1f;这类问题主要应用了哪些模型&#xff1f;主要应用在哪些领域&#xff1f;_mb62b92582e5a0a的技…

【算法刷题】Day28

文章目录 1. 买卖股票的最佳时机 III题干&#xff1a;算法原理&#xff1a;1. 状态表示&#xff1a;2. 状态转移方程3. 初始化4. 填表顺序5. 返回值 代码&#xff1a; 2. Z 字形变换题干&#xff1a;算法原理&#xff1a;1. 模拟2. 找规律 代码&#xff1a; 1. 买卖股票的最佳时…

我是如何从计算机小白成长为技术专家的(上)?

作为一名程序员&#xff0c;我想大家接触最多的是计算机吧&#xff0c;但是一个从没有接触过计算机的小白&#xff0c;又是如何走上程序员的道路的呢。 农村的孩子&#xff0c;早当家 作为农村出身的孩子&#xff0c;且家里条件也不是非常的好&#xff0c;在我那个年代&#…

Linux网络配置与抓包工具介绍

目录 一、配置命令 1. ifconfig 1.1 概述信息解析 1.2 常用格式 2. ip 2.1 ip link 数据链路层 2.2 ip addr 网络层 2.3 路由 3. hostname 3.1 临时修改主机名 3.2 永久修改主机名 4. route 5. netstat 6. ss 7. ping 8. traceroute 9. nslookup 10. 永久修…

springcloud Config配置中心

简介 服务意味着要将单体应用中的业务拆分成一个个子服务&#xff0c;每个服务的粒度相对较小&#xff0c;因此系统中会出现大量的服务。由于每个服务都需要必要的配置信息才能运行&#xff0c;所以一套集中式的、动态的配置管理设施是必不可少的。 SpringCloud提供了ConfigS…

Android SDK环境搭建

一、Android SDK简介 SDK&#xff1a;&#xff08;software development kit&#xff09;软件开发工具包。被软件开发工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。 因此&#xff0c;Android SDK 指的是Android专属的软件…

【Java集合篇】HashMap的remove方法是如何实现的?

HashMap的remove方法是如何实现的 ✔️典型解析✔️拓展知识仓✔️HashMap的remove方法的注意事项✔️HashMap的remove方法的参数类型✔️ 删除键和值的参数类型有什么区别✔️删除键值对的场景是什么 ✔️HashMap remove方法是阻塞队列的吗✔️HashMap remove方法是线程安全的…

如何使用web文件管理器Net2FTP搭建个人网盘

文章目录 1.前言2. Net2FTP网站搭建2.1. Net2FTP下载和安装2.2. Net2FTP网页测试 3. cpolar内网穿透3.1.Cpolar云端设置3.2.Cpolar本地设置 4.公网访问测试5.结语 1.前言 文件传输可以说是互联网最主要的应用之一&#xff0c;特别是智能设备的大面积使用&#xff0c;无论是个人…

Linux 常用指令汇总

Linux 常用指令汇总 文章目录 Linux 常用指令汇总[toc]前言一、文件目录指令pwd 指令ls 指令cd 指令mkdir 指令rmdir 指令tree 指令cp 指令rm 指令mv 指令cat 指令more 指令less 指令head 指令tail 指令echo 指令> 指令>> 指令 二、时间日期指令date 指令cal 指令 三、…

Mars3D与mars3d-cesium版本间兼容造成3dtiles和gltf数据处理相关记录

说明&#xff1a; 1.在引入Mars3D SDK后正常可以在F12打印的信息中可以看到Mars3D和Cesium版本信息。 2.在项目的package.json文件中同样可以看到安装后的版本号。 Mars3D对Cesium版本对应关系&#xff1a; 1.正常情况下mars3d依赖的cesium均是最新版本&#xff0c;并且对cesi…

53K star! 平替TeamViewer,试试这个开源神器

还记得以前工作上遇到困难&#xff0c;会申请开发大神远程帮忙&#xff0c;那时候用都是TeamViewer&#xff0c;但是随着TeamViewer的收费&#xff0c;这些都已成为过往。 今天我们推荐的开源项目就是让你可以轻松平替TeamViewer&#xff0c;一款远程桌面神器&#xff0c;本项…

Antd使用table同时使用scroll和fixed定位,滑动导致左右高度不统一

今天使用组件里Table时候&#xff0c;遇到一个业务场景就是在有scroll控制滚动条的同时&#xff0c;固定部分列&#xff0c;就出现的如题的bug 问题&#xff1a;无法对齐 代码&#xff1a; <TabledataSource{data}scroll{{ y: calc(100vh - 275px), x: 1200px }}columns{t…

智能合约介绍

莫道儒冠误此生&#xff0c;从来诗书不负人 目录 一、什么是区块链智能合约? 二、智能合约的发展背景 三、智能合约的优势 四、智能合约的劣势 五、一些关于智能合约的应用 总结 一、什么是区块链智能合约? 智能合约&#xff0c;是一段写在区块链上的代码&#xff0c;一…

Simpy简介:python仿真模拟库-03/5

一、说明 在过去的两篇文章中&#xff0c;我们了解了 simpy 的基础知识、声明变量和处理表达式。值得注意的例子包括评估导数和积分。现在&#xff0c;让我们继续使用函数。 二、SymPy — 函数类 SymPy 包包含 sympy.core.function 模块中的 Function 类。该类作为各种数学函数…

构建labelstudio镜像的时候,报错node:18,如何解决

解决方案&#xff1a; vi Dockerfile # syntaxdocker/dockerfile:1.3 FROM --platformlinux/amd64 node:18.16-bullseye-slim AS frontend-builder18改成 18.16-bullseye-slim

【漏洞复现】锐捷EG易网关login.php命令注入漏洞

Nx01 产品简介 锐捷EG易网关是一款综合网关&#xff0c;由锐捷网络完全自主研发。它集成了先进的软硬件体系架构&#xff0c;配备了DPI深入分析引擎、行为分析/管理引擎&#xff0c;可以在保证网络出口高效转发的条件下&#xff0c;提供专业的流控功能、出色的URL过滤以及本地化…

【2024系统架构设计】 系统架构设计师第二版-通信系统架构设计理论与实践

目录 一 通信系统网络架构 二 网络构建的关键技术 三 网络构建和设计方法 四 案例分析 注:本节内容可作为知识储备,做一个基本的了解即可。

Linux-命名管道

文章目录 前言一、命名管道接口函数介绍二、使用步骤 前言 上章内容&#xff0c;我们介绍与使用了管道。上章内容所讲的&#xff0c;是通过pipe接口函数让操作系统给我们申请匿名管道进行进程间通信。 并且这种进程间通信一般只适用于父子进程之间&#xff0c;那么对于两个没有…