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

有效的字母异位符--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://www.lryc.cn/news/2386586.html

相关文章:

  • SAP ERP 系统拆分的七大挑战
  • AcrelEMS 3.0智慧能源管理平台:构建企业微电网数智化中枢
  • 【HTML-12】HTML表格常用属性详解:从基础到高级应用
  • Word转PDF--自动生成目录
  • MySQL组合索引优化策略
  • Spring MVC 的的核心原理与实践指南
  • 轻量级视觉语言模型 Dolphin:高效精准的文档结构化解析利器
  • 如何安全配置数据库(MySQL/PostgreSQL/MongoDB)
  • 将 Docker 镜像从服务器A迁移到服务器B的方法
  • git merge解冲突后,add、continue提交
  • Lines of Thought in Large Language Models
  • 八股战神-JVM知识速查
  • 机试 | STL | string | 文字处理软件
  • 运动规划实战案例 | 图解基于状态晶格(State Lattice)的路径规划(附ROS C++/Python仿真)
  • 深入浅出对抗学习:概念、攻击、防御与代码实践
  • Neo4j(二) - 使用Cypher操作Neo4j
  • 09、供应商管理数字化转型:从潜在评估到战略合作的系统化方法
  • AI时代新词-AI增强现实(AI - Enhanced Reality)
  • 批量转存夸克网盘内容并分享实操教程
  • Swagger与go-zero框架生成和展示API文档详解
  • “安康杯”安全生产知识竞赛活动流程方案
  • 特征分解:线性代数在AI大模型中的核心工具
  • sqlite的拼接字段的方法(sqlite没有convert函数)
  • 【SSL部署与优化​】​​OCSP Stapling配置指南:减少证书验证延迟​​
  • 【C#】Invalidate()的使用
  • 理解计算机系统_并发编程(10)_线程(七):基于预线程化的并发服务器
  • 身份认证: JWT和Session是什么?
  • OpenFOAM 字典系统与求解器配置解析机制
  • 机器学习中的多GPU训练模式
  • TPAMI 2025 | CEM:使用因果效应图解释底层视觉模型