统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。
请注意,你可以假定字符串里不包括任何不可打印的字符。
示例:
输入: "Hello, my name is John"
输出: 5
解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/number-of-segments-in-a-string
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
此处有个坑,它的单词并不是我们认识的单词,比如"he,llo"也是单词,实际上他这里说的单词是非空字符串。
1. 用正则比较简单,直接匹配就好
2. 也可以用字符串的split方法
上面都是一行代码就能搞定的
3. 说下暴力破解的思路
3.1 遍历字符串
3.2 如果字符不是空格,且前面一个字符是空格,那么单词就多了一个。
3.3 对于第一个元素,如果不是空格,单词也要加一。
import re
class Solution:
def countSegments(self, s: str) -> int:
re_list = (re.findall(r'[^ ]+',s))
return len(re_list)
class Solution:
def countSegments(self, s: str) -> int:
return len(s.split())
class Solution:
def countSegments(self, s: str) -> int:
result = 0
for i,v in enumerate(s):
if i==0:
if v!=' ':
result = result+1
else:
if v!=' ' and s[i-1]==' ':
result = result+1
return result
- 执行效果:以后不贴了,看了半天,这个执行效果有的时候是骗人的,明明一样的代码,有的人就排到了前面去,难道还跟机器性能有关啊,真是无语,不应该返回服务端执行时间吗?