Description
You are given a string word that consists of digits and lowercase English letters.
You will replace every non-digit character with a space. For example, "a123bc34d8ef34" will become " 123Β 34 8Β 34". Notice that you are left with some integers that are separated by at least one space: "123", "34", "8", and "34".
Return the number of different integers after performing the replacement operations on word.
Two integers are considered different if their decimal representations without any leading zeros are different.
Β
Example 1:
Input: word = "a123bc34d8ef34" Output: 3 Explanation: The three different integers are "123", "34", and "8". Notice that "34" is only counted once.
Example 2:
Input: word = "leet1234code234" Output: 2
Example 3:
Input: word = "a1b01c001" Output: 1 Explanation: The three integers "1", "01", and "001" all represent the same integer because the leading zeros are ignored when comparing their decimal values.
Β
Constraints:
1 <= word.length <= 1000wordconsists of digits and lowercase English letters.
Solution
Python3
class Solution:
def numDifferentIntegers(self, word: str) -> int:
s = set()
tmp = ""
for w in word+"a":
if w in "12345667890":
tmp += w
else:
if tmp != "":
while tmp and tmp[0] == "0":
tmp = tmp[1:]
s.add(tmp)
tmp = ""
return len(s)