LeetCode - 434. 统计字符串字符段(Number of Segments in a String)

Posted by zihengCat on 2018-11-19

前言

本文记录LeetCode - 434. 统计字符串数据段(Number of Segments in a String)问题。

问题描述

对字符串中字符段数量统计计数,字符段的定义是:一段连续不为空白符的字符序列。

注:输入字符串中不包含任何不可打印(non-printable)的字符。

举例说明:

Input: "Hello, my name is John"
Output: 5

注:程序输入输出样例

问题解答

/* Micro Inline Function */
#define IS_WHITE_CHARS(c) \
    ((c) == ' ')
int countSegments(char* s) {
    int i = 0, count  = 0;
    while(*s != '\0') {
        if(!IS_WHITE_CHARS(*s) &&
          (IS_WHITE_CHARS(*(s+1)) || *(s+1) == '\0'))
        {
            ++count;
        }
        ++s;
    }
    return count;
}

代码清单:统计字符串字符段C/C++实现

class Solution {
    public int countSegments(String s) {
        int cnt = 0;
        for(int i = 0; i < s.length(); ++i) {
            if((s.charAt(i) != ' ') &&
               (i == 0 || s.charAt(i - 1) == ' ')) {
                ++cnt;
            }
        }
        return cnt;
    }
}

代码清单:统计字符串字符段Java实现

参考资料