No.434 字符串中的单词数

统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。

请注意,你可以假定字符串里不包括任何不可打印的字符。

示例:

输入: "Hello, my name is John"
输出: 5
解释: 这里的单词是指连续的不是空格的字符,所以 "Hello," 算作 1 个单词。

思路分析

这题考察的有点像状态机。因为需要维护一个前一个字符是不是字母的状态。如果前一个是空格,后一个是字母,就说明开始了一个新单词。

Rust代码


#![allow(unused)]
fn main() {
struct Solution;
impl Solution {
    pub fn count_segments(s: String) -> i32 {
        let mut state = 0;
        let mut res = 0;
        for ch in s.chars() {
            if ch == ' ' {
                state = 0;
            } else {
                if state == 0 {
                    res += 1;
                }
                state = 1;
            }
        }
        res
    }
}
}