给你一个字符串 word。如果 word 中同时存在某个字母的小写形式和大写形式,则称这个字母为 特殊字母 。
返回 word 中 特殊字母 的数量。
示例 1:
输入:word = "aaAbcBC"
输出:3
解释:word 中的特殊字母是 'a'、'b' 和 'c'。
示例 2:
输入:word = "abc"
输出:0
解释:word 中不存在大小写形式同时出现的字母。
此题为leetcode上第394场周赛中的一道简单题。解决方法有多种,对于小白来说,我们的思路可能是这样的:遍历字符串word,统计出每个字母出现的次数,如果该字母的大小写形式出现的数量都大于0,则计数器count++。
于是,我们可以定义一个空间为100的数组(大小写字母总共52个,A的ASCII码为65,a的ASCII码为97,定义一个空间为100的稍大数组非常合适),接下来遍历字符串word,将数组中下标为word.charAt(i)-'A'的元素值加一,如下:
int count = 0;
int [] arr = new int[100];
for(int i=0; i<word.length(); i++){
arr[word.charAt(i)-'A']++;
}
之后,我们遍历数组arr(范围从0到26),若arr[i]>0 && arr[i+32]>0,则count++,如下:
for(int i=0; i<26; i++){
if(arr[i]>0 && arr[i+32]>0){
count++;
}
}
总体代码如下:
class Solution {
public int numberOfSpecialChars(String word) {
int count = 0;
int [] arr = new int[100];
for(int i=0; i<word.length(); i++){
arr[word.charAt(i)-'A']++;
}
for(int i=0; i<26; i++){
if(arr[i]>0 && arr[i+32]>0){
count++;
}
}
return count;
}
}
标签:count,arr,word,int,3120,100,字母,统计
From: https://www.cnblogs.com/fkaa/p/18231666