题目:
1 字符串区分字符和数字(连续的字符或数字当做一个整数)
2 例如:
3 "a11hh1soiu666"
4 拆分结果:
5 a 11 hh 1 soiu 666
6
7 "a3bbb4315j43"
8 拆分结果:
9
思路:
1 使用 str.isdigit() 判断是否是数字,
2
3 如果是,继续判断上一个是否为数字,
4
5 是则将该数字和之前的组合
6
7
代码如下:
1 # @Author :whyCai
2 # @Time :2021/2/17 14:15
3
4 class Solution:
5 def returnStr(self, s) -> str:
6 numDict = {} #最终结果
7 num = 0 #取数值的起始值
8 for i in range(len(s)):
9 #判断是否是数字
10 if s[i].isdigit() :
11 # 如果第一个是数字,默认key 是 '0',value是该数字
12 if i == 0:
13 numDict['0'] = s[i]
14 #判断上一个是否是数字,如果是,将上一个值 + 该数字
15 if s[i-1].isdigit() :
16 numDict[list(numDict)[-1]] = numDict[list(numDict)[-1]] + s[i]
17 # 如果上一个不是数字,key为之前的字符,value是该数字
18 else:
19 numDict[s[num:i]] = s[i]
20 num = i + 1
21 return numDict
22
23 print (Solution().returnStr('a3bbb4315j43'))
结果如下: