LeetCode 3120.统计特殊字母的数量 I:(手写)哈希表
2026/5/28 18:28:43 网站建设 项目流程

【LetMeFly】3120.统计特殊字母的数量 I:(手写)哈希表

力扣题目链接:https://leetcode.cn/problems/count-the-number-of-special-characters-i/

给你一个字符串word。如果word中同时存在某个字母的小写形式和大写形式,则称这个字母为特殊字母

返回word特殊字母的数量。

示例 1:

输入:word = "aaAbcBC"

输出:3

解释:

word中的特殊字母是'a''b''c'

示例 2:

输入:word = "abc"

输出:0

解释:

word中不存在大小写形式同时出现的字母。

示例 3:

输入:word = "abBCab"

输出:1

解释:

word中唯一的特殊字母是'b'

提示:

  • 1 <= word.length <= 50
  • word仅由小写和大写英文字母组成。

解题方法:哈希表

遍历一般字符串并把所有出现过的字符放入哈希表中,从0到25遍历这26个字母,看哪个字母的大小写都出现过。

有办法使用数组代替(作为)哈希表吗?以及有办法使用52长度的数组作为哈希表吗?有,判断下大小写放入数组对应的位置就好。

  • 时间复杂度O ( l e n ( w o r d ) + C ) O(len(word)+C)O(len(word)+C),其中C = 26 × 2 C=26\times 2C=26×2
  • 空间复杂度O ( C ) O(C)O(C)

AC代码

C++
/* * @LastEditTime: 2026-05-26 23:53:14 */classSolution{public:intnumberOfSpecialChars(string word){boollower[26]={false},upper[26]={false};for(charc:word){if('a'<=c&&c<='z'){lower[c-'a']=true;}else{upper[c-'A']=true;}}intans=0;for(inti=0;i<26;i++){ans+=lower[i]&&upper[i];}returnans;}};

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询