题解:学而思编程 字符串
【题目来源】学而思编程字符串【题目描述】小猴最近学习了字符串为了加强对字符串的理解猴博士特意给小猴安排了一道编程题给定一个字符串s ss保证s ss中只包含大写字母‘A’ - ‘Z’)请你判断字符串s ss中是否包含了全部26 2626个英文字母无论某个英文字母是以大写还是小写形式出现在字符串中均视为该字符串包含此字母。现在请你帮助小猴完成这个编程题。【输入】一行一个字符串s ss。【输出】一行如果给定字符串包含了全部26 2626个英文字母则输出Yes否则输出No。【输入样例】toosmallword【输出样例】No【核心思想】问题分析给定一个字符串s ss判断其是否包含全部26 2626个英文字母不区分大小写。这是一个**桶计数Bucket Counting**问题核心在于高效统计字符出现情况忽略大小写差异。算法选择统一大小写将所有字符转换为同一种大小写形式消除大小写差异桶数组Bucket Array利用布尔数组f ff标记每个字符是否出现实现O ( 1 ) O(1)O(1)的字符存在性查询关键步骤初始化创建布尔数组f [ 0..129 ] f[0..129]f[0..129]初始值为f a l s e falsefalse遍历字符串处理每个字符s i s_isi​若s i ∈ [ ′ A ′ , ′ Z ′ ] s_i \in [A, Z]si​∈[′A′,′Z′]s i ← s i − ′ A ′ ′ a ′ s_i \leftarrow s_i - A asi​←si​−′A′′a′转换为大写转小写标记出现f [ s i ] ← t r u e f[s_i] \leftarrow truef[si​]←true检查完整性遍历i ii从′ a ′ a′a′到′ z ′ z′z′若存在f [ i ] f a l s e f[i] falsef[i]false输出No并结束输出结果若26 2626个字母均出现输出Yes时间/空间复杂度时间复杂度O ( ∣ s ∣ 26 ) O(|s| 26)O(∣s∣26)遍历字符串O ( ∣ s ∣ ) O(|s|)O(∣s∣)检查26 2626个字母O ( 26 ) O(26)O(26)空间复杂度O ( 128 ) O(128)O(128)固定大小的 ASCII 码桶数组桶计数的核心思想哈希思想的简化实现利用字符的 ASCII 码值作为数组下标将字符映射到固定位置实现O ( 1 ) O(1)O(1)的标记和查询大小写归一化通过统一转换为小写或大写将52 5252个可能字符压缩为26 2626个有效状态简化统计逻辑布尔标记替代计数只需知道字符是否出现无需统计出现次数使用b o o l boolbool类型即可满足需求空间更优提前终止优化一旦发现某个字母缺失立即输出结果避免不必要的完整遍历适用于字符集有限、需要快速判断元素存在性的统计类问题【解题思路】【算法标签】#字符串入门【代码详解】#includebits/stdc.husingnamespacestd;boolf[130];// 直接按照ASCII码定义数组intmain(){string s;cins;// 统一成小写统计每个字母是否出现for(inti0;is.size();i){if(s[i]As[i]Z){s[i]s[i]-Aa;}f[s[i]]true;// 使用桶记录每个字符}for(intia;iz;i){// 遍历26个字母的下标if(!f[i]){// 如果其中有f[i]falsecoutNoendl;// 输出Noreturn0;}}coutYesendl;// 如果可以遍历完则输出Yesreturn0;}【运行结果】toosmallword No

相关新闻

Windows Server 2012 R2 部署 Docker 方案对比:Docker Toolbox vs Linux VM 性能与适用性分析

Windows Server 2012 R2 部署 Docker 方案对比:Docker Toolbox vs Linux VM 性能与适用性分析

Windows Server 2012 R2 容器化方案深度评估:Docker Toolbox 与 Linux VM 技术路线对比1. 老旧Windows系统容器化背景与挑战在数字化转型浪潮中,容器化技术已成为现代应用部署的标准范式。然而对于仍在使用Windows Server 2012 R2的企业而言,…

2026/7/6 21:52:31阅读更多 →
Postman进阶实战:从API调试到自动化测试与团队协作

Postman进阶实战:从API调试到自动化测试与团队协作

1. 项目概述:从“会用”到“精通”的蜕变如果你已经能用Postman发几个GET、POST请求,看到返回的JSON数据,那恭喜你,你已经踏入了API测试的大门。但这就够了吗?在我过去几年带团队、做项目的经历里,见过太多…

2026/7/6 21:52:31阅读更多 →
RabbitMQ 3.7.4 与 Erlang OTP 20.2 版本兼容性:5个常见安装报错与根因分析

RabbitMQ 3.7.4 与 Erlang OTP 20.2 版本兼容性:5个常见安装报错与根因分析

RabbitMQ 3.7.4 与 Erlang OTP 20.2 版本兼容性深度解析:5个典型安装故障与解决方案1. 版本兼容性:隐藏的安装陷阱RabbitMQ与Erlang的版本匹配问题堪称消息队列部署中最常见的"暗礁"。官方文档明确表示,RabbitMQ 3.7.x系列需要Erla…

2026/7/6 21:52:31阅读更多 →
XTR116芯片在4-20mA电流环设计中的关键应用与优化

XTR116芯片在4-20mA电流环设计中的关键应用与优化

1. 4-20mA电流环技术背景与XTR116选型考量 工业现场最头疼的问题莫过于信号传输过程中的干扰——电机启停的浪涌、变频器的高频噪声、长距离导线的压降,这些都会让传统的电压信号传输变得不可靠。这就是为什么4-20mA电流环能在工业自动化领域统治半个多世纪&#xf…

2026/7/6 23:02:36阅读更多 →
AI驱动的自动化测试维护:构建Playwright脚本自动修复闭环实践

AI驱动的自动化测试维护:构建Playwright脚本自动修复闭环实践

1. 项目概述:当AI成为你的自动化测试“运维搭档”在自动化测试领域,尤其是UI自动化,有一个老生常谈的痛点:脚本的维护成本远高于其编写成本。我们团队用Playwright写了几百个端到端测试用例,覆盖了核心业务流程&#x…

2026/7/6 23:02:36阅读更多 →
Java集成ZXing与Minio实现二维码动态生成与云存储实践

Java集成ZXing与Minio实现二维码动态生成与云存储实践

1. 项目概述与核心价值最近在做一个内部工具的后台模块,有个需求是动态生成带参数的二维码,并且需要把这些二维码图片文件统一存储和管理起来。一开始想着直接存服务器本地磁盘,但考虑到后续的分布式部署和文件访问的便捷性,本地存…

2026/7/6 23:02:36阅读更多 →
抖音动态监控助手:5分钟实现自动推送的完整教程

抖音动态监控助手:5分钟实现自动推送的完整教程

抖音动态监控助手:5分钟实现自动推送的完整教程 【免费下载链接】douyin_dynamic_push 【抖音】视频动态、直播间开播检测与推送 项目地址: https://gitcode.com/gh_mirrors/do/douyin_dynamic_push 还在为错过心仪博主的精彩直播而烦恼吗?还在手…

2026/7/6 23:02:36阅读更多 →
虚幻引擎 UMG 蓝图架构设计:基于C++的3层UI框架实现

虚幻引擎 UMG 蓝图架构设计:基于C++的3层UI框架实现

虚幻引擎UMG三层架构设计:从C数据驱动到蓝图动态布局当游戏UI系统从简单的HUD演变为包含商城、社交、任务等数十个交互模块的复杂体系时,如何构建可维护、易扩展的架构成为高级开发者必须面对的挑战。本文将分享一套经过多个3A项目验证的三层架构方案&am…

2026/7/6 23:02:36阅读更多 →
WinForm 无边框窗口拖拽:3种方案对比与 2 个常见坐标转换陷阱

WinForm 无边框窗口拖拽:3种方案对比与 2 个常见坐标转换陷阱

WinForm无边框窗口拖拽:3种实现方案与2个坐标转换陷阱全解析无边框窗口设计的价值与挑战在现代化桌面应用开发中,无边框窗口设计已成为提升用户体验的重要选择。通过去除传统窗口的标题栏和边框,开发者能够实现完全自定义的界面风格&#xff…

2026/7/6 22:57:36阅读更多 →
从GitHub安全案例解析常见漏洞与防护实践

从GitHub安全案例解析常见漏洞与防护实践

1. 项目概述:从GitHub Trending看安全实战 最近在GitHub Trending上看到一个项目,叫 skills4/skills ,它因为一些安全漏洞案例被大家讨论。这其实是一个挺典型的场景:一个旨在展示或教授某种技能的仓库,本身却成了安…

2026/7/6 4:26:20阅读更多 →
MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

MLT 2026启示:因果推理与概率建模驱动下一代LLM应用

# MLT 2026启示:因果推理与概率建模驱动下一代LLM应用## 一、背景与挑战:从“黑箱预测”到“可信推理”2026年6月,第7届机器学习与趋势国际会议(MLT 2026)将在悉尼召开。会议议程中,“因果与可解释机器学习…

2026/7/6 2:48:33阅读更多 →
通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

通达OA SQL注入漏洞深度剖析:从手工注入到自动化利用与防御

1. 项目概述与漏洞背景最近在梳理一些历史OA系统的安全风险时,通达OA v11.6版本中的一个老漏洞又进入了我的视线。这个漏洞位于/general/bi_design/appcenter/report_bi.func.php文件中,是一个典型的SQL注入点。虽然这个漏洞的利用方式看起来并不复杂&am…

2026/7/6 0:10:35阅读更多 →
Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南

Seraphine:基于LCU API的英雄联盟智能游戏助手技术解析与应用指南 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine 技术架构先行:官方接口的合规应用 你是否曾在BP阶段手忙脚乱&#x…

2026/7/6 0:03:39阅读更多 →
多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理

多协议远程连接管理工具mRemoteNG:告别混乱,统一你的远程桌面管理 【免费下载链接】mRemoteNG mRemoteNG is the next generation of mRemote, open source, tabbed, multi-protocol, remote connections manager. 项目地址: https://gitcode.com/gh_m…

2026/7/6 0:03:39阅读更多 →
COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南

COUNT(DISTINCT) 与 GROUP BY 去重统计:5 亿数据量下的性能实测与选型指南在数据分析和处理领域,去重统计是最基础也是最频繁使用的操作之一。当数据量达到亿级规模时,不同的去重统计方法在性能上可能产生天壤之别。本文将基于 5 亿行数据的实…

2026/7/6 0:03:39阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/6 4:45:01阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/6 4:45:01阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/6 4:45:03阅读更多 →