Open yankewei opened 3 years ago
正则匹配即可,就是有一点要注意,尽量不用string转int这样的函数,因为如果字符串超过了int的最大范围,结果也是int的最大值,会造成即使字符串不同,转化后的结果可能会相同。
func numDifferentIntegers(word string) int {
set := map[string]struct{}{}
re := regexp.MustCompile(`[0-9]+`)
strSlice := re.FindAllStringSubmatch(word, -1)
for _, v := range strSlice {
val := strings.TrimLeft(v[0], "0")
if _, e := set[val]; !e {
set[val] = struct{}{}
}
}
return len(set)
}
给你一个字符串
word
,该字符串由数字和小写英文字母组成。请你用空格替换每个不是数字的字符。例如,
"a123bc34d8ef34"
将会变成" 123 34 8 34"
。注意,剩下的这些整数间至少要用一个空格隔开:"123"、"34"、"8"
和"34"
。返回对
word
完成替换后形成的 不同 整数的数目。如果两个整数的 不含前导零 的十进制表示不同,则认为这两个整数也不同。
示例 1:
示例 2:
示例 3:
提示: