【刷题笔记】434. 字符串中的单词数

90 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情

一、题目描述:

434. 字符串中的单词数 - 力扣(LeetCode)

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

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

示例:

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

二、思路分析:

遍历字符串,根据需求的描述, 1、判断字符串长度,当字符串长度为0时,直接返回0
2、我认为在遍历过程中,当第i个字符不是空格,但第i+1个数是空格时,则计数器加1 (空格的ASCLL码是32).
3、上一步做法其实只是记录了两个单词间的空格数量,实际上的单词会比这个空格数量多1, 所以在遍 历完之后只要判定字符串最后一个字符不是空格,那就还要给计数器加1

三、AC 代码:

class Solution {
    public int countSegments(String s) {

        //判断字符串的长度
        if (s.length() == 0){
            return 0;
        }

        //遍历字符串并更新计数器
        int counter = 0;
        for (int i = 0; i < s.length()-1; i++) {
            if ((int)s.charAt(i) != 32 && (int)s.charAt(i+1) == 32){
                counter += 1;
            }
        }
        if ((int)s.charAt(s.length()-1) != 32){
            counter += 1;
        }
        return counter;
    }
}

范文参考:

【微扰理论】先读取连续的空格 再 读取连续的非空格 - 字符串中的单词数 - 力扣(LeetCode)

434. 字符串中的单词数##超简单思路## - 字符串中的单词数 - 力扣(LeetCode)

【依旧是String的本质char[]】从char数组层面来一次遍历判断分割数 - 字符串中的单词数 - 力扣(LeetCode)