【Leetcode】【python】Number of Segments in a String

题目大意

计算字符串中的非空子串的个数。

解题思路

split()

代码

1
return len(s.split())

总结

这题对于python来说有点智障,然而智障的我还是把他想复杂了,我写的是:

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
class Solution(object):
def countSegments(self, s):
"""
:type s: str
:rtype: int
"""
ss = list(s)
count = 1
flag = 0
for i in range(len(ss)):
if ord(ss[i])>=48 and ord(ss[i])<=57:
flag = 0
continue
elif ord(ss[i])>=65 and ord(ss[i])<=90:
flag = 0
continue
elif ord(ss[i])>=97 and ord(ss[i])<=122:
flag = 0
continue
else:
if flag == 1:
flag = 0
continue
# print(ss[i], ord(ss[i]))
count +=1
flag = 1
return count

提交后是错的,因为:

1
2
3
4
5
6
Input:
"love live! mu'sic forever"
Output:
5
Expected:
4

之后才意识到自己想复杂了,有空格就可以了。。。
不过代码中flag的作用是记录上一轮循环发生的结果,在其他代码编写中中可以作为一个用例。