-
-
Notifications
You must be signed in to change notification settings - Fork 29
Expand file tree
/
Copy pathcount_letters.py
More file actions
34 lines (27 loc) · 985 Bytes
/
count_letters.py
File metadata and controls
34 lines (27 loc) · 985 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from typing import Set
def count_letters(s: str) -> int:
"""
count_letters returns the number of letters which only occur in upper case in the passed string.
"""
# only_upper = set()
# for letter in s:
# if is_upper_case(letter):
# if letter.lower() not in s:
# only_upper.add(letter)
# return len(only_upper)
uppercase_letters : Set[str] = set()
lowercase_letters : Set[str] = set()
# Precompute uppercase and lowercase letters
for letter in s:
if is_upper_case(letter):
uppercase_letters.add(letter)
elif letter.isalpha():
lowercase_letters.add(letter)
# Count uppercase letters that don't appear in lowercase
count = 0
for letter in uppercase_letters:
if letter.lower() not in lowercase_letters:
count +=1
return count
def is_upper_case(letter: str) -> bool:
return letter == letter.upper()