题目大意

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

解题思路

split()

代码

return len(s.split())

总结

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

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

提交后是错的,因为:

Input:
"love live! mu'sic forever"
Output:
5
Expected:
4

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