Description
You are given a string word
. A letterΒ c
is called special if it appears both in lowercase and uppercase in word
, and every lowercase occurrence of c
appears before the first uppercase occurrence of c
.
Return the number of special letters in word
.
Β
Example 1:
Input: word = "aaAbcBC"
Output: 3
Explanation:
The special characters are 'a'
, 'b'
, and 'c'
.
Example 2:
Input: word = "abc"
Output: 0
Explanation:
There are no special characters in word
.
Example 3:
Input: word = "AbBCab"
Output: 0
Explanation:
There are no special characters in word
.
Β
Constraints:
1 <= word.length <= 2 * 105
word
consists of only lowercase and uppercase English letters.
Solution
Python3
class Solution:
def numberOfSpecialChars(self, word: str) -> int:
A = [[-1, -1] for _ in range(26)]
for i, x in enumerate(word):
if x.isupper():
if A[ord(x) - ord('A')][1] == -1:
A[ord(x) - ord('A')][1] = i
else:
A[ord(x) - ord('a')][0] = i
res = 0
for i in range(26):
if A[i][0] != -1 and A[i][1] != -1 and A[i][0] < A[i][1]:
res += 1
return res