当前位置: 首页 > news >正文

有效的字母异位符--LeetCode

题目

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

示例 1:

输入: s = "anagram", t = "nagaram"
输出: true

示例 2:

输入: s = "rat", t = "car"
输出: false

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

class Solution {public boolean isAnagram(String s, String t) {//先判断s和t的长度是否相同if(s.length() != t.length())return false;char[] str1 = s.toCharArray();//将s转变为字符数组char[] str2 = t.toCharArray();Arrays.sort(str1);//对s进行自动排序Arrays.sort(str2);return Arrays.equals(str1,str2);//返回str1和str2是否相等}
}

思路二:哈希表
从另一个角度考虑,t 是 s 的异位词等价于「两个字符串中字符出现的种类和次数均相等」。由于字符串只包含 26 个小写字母,因此我们可以维护一个长度为 26 的频次数组 table,先遍历记录字符串 s 中字符出现的频次,然后遍历字符串 t,减去 table 中对应的频次,如果出现 table[i]<0,则说明 t 包含一个不在 s 中的额外字符,返回 false 即可。

class Solution {public boolean isAnagram(String s, String t) {//先判断s和t的长度是否相等if(s.length() != t.length())return false;//创建哈希表共26个字母int[] table = new int[26];//依次将s中的字符存入哈希表中for(int i = 0;i < s.length();i++){table[s.charAt(i) - 'a']++;}//将t中的对应字符移除for(int i = 0;i < t.length();i++){table[t.charAt(i) - 'a']--;//若哈希表中有负数,则说明不相等if(table[t.charAt(i) - 'a'] < 0)return false;}//否则,相等return true;}}


文章转载自:

http://8AlK7hOH.xnLtz.cn
http://a6TZIy59.xnLtz.cn
http://IsEGi132.xnLtz.cn
http://PYqqcZdJ.xnLtz.cn
http://QWUypMHi.xnLtz.cn
http://e178xbpt.xnLtz.cn
http://qGKZnjzC.xnLtz.cn
http://YbjSFwdy.xnLtz.cn
http://slCUUyP5.xnLtz.cn
http://MbhGQZT3.xnLtz.cn
http://HbTytXPk.xnLtz.cn
http://RGhtn46T.xnLtz.cn
http://DlhWTeuz.xnLtz.cn
http://Unu3gHbM.xnLtz.cn
http://sRHdQouw.xnLtz.cn
http://T2oddBb5.xnLtz.cn
http://d731BViq.xnLtz.cn
http://0XRxlAer.xnLtz.cn
http://imNCbSH8.xnLtz.cn
http://Iscl2WTc.xnLtz.cn
http://JUQ7hKsh.xnLtz.cn
http://04wD8NUL.xnLtz.cn
http://CJWJVY18.xnLtz.cn
http://8v9I11b5.xnLtz.cn
http://XvlQmD3c.xnLtz.cn
http://sHQgSxzL.xnLtz.cn
http://qYLIEv04.xnLtz.cn
http://yBEcMsok.xnLtz.cn
http://YfWdiJj6.xnLtz.cn
http://X2cs86U8.xnLtz.cn
http://www.dtcms.com/a/214612.html

相关文章:

  • 力扣热题100之LRU缓存机制
  • C#实现SSE通信方式的MCP Server
  • 1期临床试验中的联合i3+3设计
  • Excel快捷键大全
  • 【Spring】Spring AI 核心知识(一)
  • AI模型评估指南:准确率、召回率、F1值到底怎么用
  • TCP 三次握手,第三次握手报文丢失会发生什么?
  • lwip_bind、lwip_listen 是阻塞函数吗
  • 【LeetCode 热题 100】买卖股票的最佳时机 / 跳跃游戏 / 划分字母区间
  • 有铜半孔的设计规范与材料创新
  • C++ ——new和malloc的区别(详细)
  • JVM垃圾回收器详细介绍
  • 保姆式 网站建设wordpress全教程----包含疑难杂症
  • PHP:赋能Web开发的经典语言与未来演进
  • MySQL 中 DISTINCT 和 GROUP BY 的区别与联系
  • Linux基础与Nginx配置实战:从入门到精通
  • ESP8266+STM32 AT驱动程序,心知天气API 记录时间: 2025年5月26日13:24:11
  • 【后端高阶面经:MongoDB篇】41、MongoDB 是怎么做到高可用的?
  • FastDFS集群部署与性能优化实战
  • vite常见面试问题
  • 多模态大语言模型arxiv论文略读(九十三)
  • Zephyr OS: periodic_adv_rsp代码架构和实现
  • Linux基本指令篇 —— clear指令
  • 2.1 一文掌握 TypeScript 操作符
  • 寒武纪显卡MLU编译安装mmcv1.7.0、mmdetection2.26.0并测试
  • 如何在 ONLYOFFICE 演示文稿中调整段落首行缩进
  • 如何通过AI辅助数据分析
  • 凯恩斯宏观经济学与马歇尔微观经济学的数学建模和形式化表征
  • Flutter Container组件、Text组件详解
  • 程序编码规范,软件设计规范