【LC简单】434. 字符串中的单词数

简介: 【LC简单】434. 字符串中的单词数

题目描述:

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

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

示例:

输入: “Hello, my name is John”

输出: 5

解释: 这里的单词是指连续的不是空格的字符,所以 “Hello,” 算作 1 个单词。

class Solution {
    public int countSegments(String s) {
    }
}

来源:力扣(LeetCode)

链接:https://leetcode.cn/problems/number-of-segments-in-a-string

解题思路:

思路一:

首先判断s是否引用了字符串,null的情况直接返回0,不是null则利用trim()方法掉字符串两边的空格,然后统计字符串中空格块的个数(指一个空格或者多个空格连在一起),空格块的个数加1就是字符串中的单词数。

思路二:

首先判断s是否引用了字符串,null的情况直接返回0,不是null则利用trim()方法掉字符串两边的空格,然后再利用split()方法将字符串以空格进行分割放到字符串数组中,统计字符串数组中非空字符串的个数。

注意:

在Java中以空格为分割符完成字符串分割后,若两单词间有 x > 1 个空格,则在单词列表 strings 中,这两个单词间会多出 x − 1 个 “空单词” (即"")。

代码实现:

class Solution {
    //方法一
    public int countSegments(String s) {
        if(s == null) {
            return 0;
        }
        //先去掉字符串俩边的空格
        s = s.trim();
        if(s.length()==0){
            return 0;
        }
        //统计出空格块的个数
        int count = 0;
        for(int i = 0; i < s.length(); i++){
            if(s.charAt(i) == ' '){
                count++;
                while(i < s.length() && s.charAt(i) == ' '){
                    i++;
                }
            }
        }
        //空格块的个数+1就是字符串数
        return count + 1;
    }
    //方法二
    /*public int countSegments(String s) {
        if(s == null) {
            return 0;
        }
        //先去掉字符串俩边的空格
        s = s.trim();
        if(s.length()==0){
            return 0;
        }
        //以空格将字符串分割
        String[] strings = s.split(" ");
        int count = 0;
        for(int i = 0; i < strings.length; i++) {
            //统计非空字符串的个数
            if(strings[i].length() != 0) {
                count++;
            }
        }
        return count;
    }*/
}

提交结果:73d8c9be8b2a4960a39693770de0ac9a.png

目录
相关文章
|
8月前
leetcode-434:字符串中的单词数
leetcode-434:字符串中的单词数
50 1
【Leetcode -415.字符串相加 - 434.字符串中的单词数】
【Leetcode -415.字符串相加 - 434.字符串中的单词数】
48 0
|
8月前
【每日一题Day237】LC1375二进制字符串前缀一致的次数 | 技巧题
【每日一题Day237】LC1375二进制字符串前缀一致的次数 | 技巧题
59 1
|
8月前
【每日一题Day371】LC2586统计范围内的元音字符串数 | 模拟
【每日一题Day371】LC2586统计范围内的元音字符串数 | 模拟
63 1
|
8月前
输入一个字符串,统计其中字符A的数量并且输出,输入共有一行,为一个不带空格的字符串(其中字符数不超过100),输出一行,包含一个整数,为输入字符串中的A的数量
输入一个字符串,统计其中字符A的数量并且输出,输入共有一行,为一个不带空格的字符串(其中字符数不超过100),输出一行,包含一个整数,为输入字符串中的A的数量
|
8月前
【每日一题Day233】LC1170比较字符串最小字母出现频次 | 前缀和
【每日一题Day233】LC1170比较字符串最小字母出现频次 | 前缀和
45 0
abc序列数
abc序列数
62 0
7-81 单词长度
7-81 单词长度
103 0
|
索引
【LC简单】387. 字符串中的第一个唯一字符
【LC简单】387. 字符串中的第一个唯一字符
86 0
【LC简单】387. 字符串中的第一个唯一字符
【LC简单】709. 转换成小写字母
【LC简单】709. 转换成小写字母
123 0
【LC简单】709. 转换成小写字母