news 2026/5/8 16:20:14

LeetCode 有效的字母异位词题解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LeetCode 有效的字母异位词题解

LeetCode 有效的字母异位词题解

题目描述

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

示例

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

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

解题思路

方法:哈希表

思路

  • 使用哈希表来解决这个问题。
  • 首先检查两个字符串的长度是否相等,如果不相等,直接返回 False。
  • 创建一个哈希表来统计字符串s中每个字符出现的次数。
  • 遍历字符串t,对于每个字符,如果在哈希表中不存在或计数为 0,返回 False;否则将哈希表中的计数减 1。
  • 如果遍历完成,返回 True。

复杂度分析

  • 时间复杂度:O(n),其中 n 是字符串的长度。每个字符最多被访问一次。
  • 空间复杂度:O(1),最多需要存储 26 个字母。

代码实现

方法:哈希表

# 有效的字母异位词(哈希表) def is_anagram(s, t): if len(s) != len(t): return False count = {} # 统计字符串 s 中每个字符出现的次数 for char in s: count[char] = count.get(char, 0) + 1 # 遍历字符串 t,检查每个字符 for char in t: if count.get(char, 0) == 0: return False count[char] -= 1 return True # 测试 def test_is_anagram(): print(is_anagram("anagram", "nagaram")) # 输出:True print(is_anagram("rat", "car")) # 输出:False if __name__ == "__main__": test_is_anagram()

方法:排序

# 有效的字母异位词(排序) def is_anagram_sort(s, t): return sorted(s) == sorted(t) # 测试 def test_is_anagram_sort(): print(is_anagram_sort("anagram", "nagaram")) # 输出:True print(is_anagram_sort("rat", "car")) # 输出:False if __name__ == "__main__": test_is_anagram_sort()

测试用例

测试用例 1:有效字母异位词

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

测试用例 2:无效字母异位词

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

总结

有效的字母异位词是一个经典的哈希表问题,它可以通过哈希表或排序来解决。

哈希表法的核心思想是:统计字符串s中每个字符出现的次数,然后遍历字符串t,检查每个字符是否在哈希表中存在且计数大于 0。

排序法的核心思想是:将两个字符串排序后比较是否相等。

掌握哈希表的使用方法,对于解决类似的问题非常重要。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/8 16:20:09

使用Taotoken为Claude Code配置稳定API连接解决封号困扰

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken为Claude Code配置稳定API连接解决封号困扰 对于依赖Claude Code进行日常开发的工程师而言,一个稳定、可用…

作者头像 李华
网站建设 2026/5/8 16:20:07

基于React与TypeScript的现代化浏览器扩展开发模板全解析

1. 项目概述:一个现代浏览器扩展开发的“全家桶”模板 如果你和我一样,开发过几个浏览器扩展,那你一定经历过那种“从零开始”的痛苦:手动配置构建工具、纠结于如何优雅地管理选项页面、为不同浏览器的打包发布流程头疼&#xff…

作者头像 李华
网站建设 2026/5/8 16:19:40

OpenClaw智能体监控仪表盘:一键部署与可视化运维指南

1. 项目概述:一键启动你的智能体监控中心如果你正在使用 OpenClaw 框架来管理和运行你的 AI 智能体(Bot),那么你很可能面临一个共同的痛点:如何直观、实时地掌握所有智能体的运行状态、会话情况、资源消耗以及技能生态…

作者头像 李华
网站建设 2026/5/8 16:19:40

ORA 600 [qkaQknLTPruneKaf:1] BUG 分析与处理

大家好,这里是 DBA学习之路,专注于提升数据库运维效率。 前言 今天检查一套 Oracle 12.1 单机数据库发现 alert 日志报错 ORA-600 [qkaQknLTPruneKaf:1],本文记录一下处理过程。 问题描述 日常检查数据库,adrci 检查发现报错&am…

作者头像 李华
网站建设 2026/5/8 16:19:38

一站式解决方案:win-capture-audio专业音频捕获插件实战指南

一站式解决方案:win-capture-audio专业音频捕获插件实战指南 【免费下载链接】win-capture-audio An OBS plugin that allows capture of independant application audio streams on Windows, in a similar fashion to OBSs game capture and Discords application …

作者头像 李华
网站建设 2026/5/8 16:19:09

2026年熔覆加工供应商大揭秘,哪家才是行业优选?

在制造业不断发展的今天,熔覆加工技术的重要性日益凸显。选择一家优质的熔覆加工供应商,对于企业的生产效率、产品质量以及成本控制都有着至关重要的影响。2026年,众多熔覆加工供应商竞争激烈,其中上海盖泽激光科技有限公司&#…

作者头像 李华