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

发布于:2023-01-04 ⋅ 阅读:(278) ⋅ 点赞:(0)

在这里插入图片描述博客主页: XIN-XIANG荣
系列专栏:【LeetCode/牛客刷题】
一句短话: 难在坚持,贵在坚持,成在坚持!

题目描述:

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

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

示例:

输入: “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;
    }*/
}

提交结果:

img

本文含有隐藏内容,请 开通VIP 后查看

网站公告

今日签到

点亮在社区的每一天
去签到