【力扣算法简单五十题】44.有效的字母异位词

该博客探讨如何编写一个函数,用于判断两个字符串是否为字母异位词,即它们包含的字符种类和数量完全相同。通过示例输入和输出,解释了函数的正确行为,并强调了字符串中字符计数的重要性。

给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。
注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词。

示例 1:
输入: s = “anagram”, t = “nagaram”
输出: true

示例 2:
输入: s = “rat”, t = “car”
输出: false

提示:
1 <= s.length, t.length <= 5 * 104
s 和 t 仅包含小写字母

LeetCode 是一个广受程序员欢迎的在线编程练习平台,尤其在准备技术面试时非常有用。热门的 100 道算法目通常是根据面试频率和难度挑选出来的,旨在帮助用户高效地准备技术面试。这些目涵盖了数据结构、算法、字符串操作、数组操作等多个方面,能够帮助用户巩固编程基础并提升解决问的能力。 以下是一些常见的热门目类型及其示例: ### 字符串相关问 - 判断两个字符串是否为字母异位词(如 `isAnagram` 方法所示)[^1]。 - 实现 `atoi` 函数,将字符串转换为整数。 - 判断一个字符串是否是回文。 ### 数组相关问 - 寻找数组中的峰值元素。 - 合并两个有序数组。 - 找出数组中重复的数字。 ### 链表相关问 - 反转链表。 - 判断链表是否有环。 - 找到链表的中间节点。 ### 树与图相关问 - 二叉树的前序、中序和后序遍历。 - 判断两棵二叉树是否相同。 - 图的深度优先搜索(DFS)或广度优先搜索(BFS)实现。 ### 排序与搜索 - 实现快速排序、归并排序等经典排序算法。 - 在排序数组中查找目标值的位置。 - 搜索旋转排序数组。 ### 动态规划 - 爬楼梯问。 - 最长递增子序列。 - 不同路径问。 ### 数学问 - 计算快乐数(Happy Number),即一个数经过一系列平方和运算后是否能回到 1。 - 求解最大公约数。 - 实现幂运算。 ### 其他经典问 - 实现 LRU 缓存机制。 - 设计一个支持 `push`, `pop`, `top` 操作,并能在常数时间内检索到最小元素的栈。 - 找到两个单链表相交的起始节点。 ### 示例代码 以下是一个简单的 Java 示例,用于判断两个字符串是否为字母异位词: ```java class Solution { public boolean isAnagram(String s, String t) { if (s.length() != t.length()) return false; int[] num = new int[26]; for (int i = 0; i < s.length(); i++) { num[s.charAt(i) - 'a']++; num[t.charAt(i) - 'a']--; } for (int i : num) { if (i != 0) return false; } return true; } } ``` 这段代码通过统计每个字母出现的次数来判断两个字符串是否为字母异位词。如果所有字母的计数都为零,则说明两个字符串是字母异位词
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

左绍骏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值