题目出处
源自于leetcode
题目描述
Count the number of segments in a string, where a segment is defined to be a contiguous sequence of non-space characters.
For example,
Input: "Hello, my name is John"
Output: 5
解读
计算给定字符串的片段数,片段由空白字符分割。
如给定:"Hello, my name is John", 输出5(五个片段,分别为"Hello,", "my", "name", "is", "John"
解答
此题用python做太简单了,split字符串得到list,计算list长度即可。
代码
1 | class Solution(object): |

第二版
思路解析
在第一版中,直接使用python的str类提供的函数,效率比较低,下面使用模式计算片段数量:
- 用
space_mode变量表示是否处于空白字符模式(空白字符是片段分割符); - 如果处于空白字符模式(
space_mode = True),遇到非空字符时,片段数加一; - 如果不处于空白字符模式(
space_mode = False),遇到空白字符,则转入空白字符模式
代码如下
1 | class Solution(object): |

后续工作
此题用C语言做比较能领会split的核心概念:
- 用C语言解答此题;
- 研究python的
str.split()方法。