class Solution {
public:
int numberOfSpecialChars(string word) {
}
};
100294. 统计特殊字母的数量 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
仅由小写和大写英文字母组成。原站题解
python3 解法, 执行用时: 37 ms, 内存消耗: 16.4 MB, 提交时间: 2024-04-21 23:50:54
class Solution: def numberOfSpecialChars(self, word: str) -> int: word = set(word) return sum(chr(i) in word and chr(i + 32) in word for i in range(65, 91))
golang 解法, 执行用时: 0 ms, 内存消耗: 2.2 MB, 提交时间: 2024-04-21 23:49:47
func numberOfSpecialChars(word string) int { mask := [2]int{} for _, c := range word { mask[c>>5&1] |= 1 << (c & 31) } return bits.OnesCount(uint(mask[0] & mask[1])) }
python3 解法, 执行用时: 35 ms, 内存消耗: 16.5 MB, 提交时间: 2024-04-21 23:49:32
class Solution: def numberOfSpecialChars(self, word: str) -> int: mask = [0, 0] for c in map(ord, word): mask[c >> 5 & 1] |= 1 << (c & 31) return (mask[0] & mask[1]).bit_count()
java 解法, 执行用时: 1 ms, 内存消耗: 41.3 MB, 提交时间: 2024-04-21 23:49:16
class Solution { public int numberOfSpecialChars(String word) { int[] mask = new int[2]; for (char c : word.toCharArray()) { mask[c >> 5 & 1] |= 1 << (c & 31); } return Integer.bitCount(mask[0] & mask[1]); } }
cpp 解法, 执行用时: 3 ms, 内存消耗: 7.7 MB, 提交时间: 2024-04-21 23:49:02
class Solution { public: int numberOfSpecialChars(string word) { int mask[2]{}; for (char c : word) { mask[c >> 5 & 1] |= 1 << (c & 31); } return __builtin_popcount(mask[0] & mask[1]); } };