每日一题&&学习笔记

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

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

示例:

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

可以用istringstream对字符进行分割

cpp 复制代码
class Solution {
public:
    int countSegments(string s) {
        //使用输入字符串流来解析输入的字符串
        istringstream stream(s);
        //定义一个字符串变量word,用于存储从流中提取的每个单词
        string word;
        //定义一个计数器变量,用于统计单词的个数
        int count=0;
        //使用while循环和提取运算符(>>)从流中提取单词
        //当流中还有可以提取的单词时,循环继续
        while(stream>>word){
            //每次成功提取一个单词,计数器自增
            count++;
        }
        //循环结束后,返回计数器的值,即单词的总数
        return count;
    }
};

还有另一个直接的思路,就是去遍历字符串,判断若每个单词的前一个字符为空格,而当前字符串不为空格,则存在一个单词,计数器加1

cpp 复制代码
class Solution {
public:
    int countSegments(string s) {
        //定义一个计数器变量,用于统计单词的个数
        int count=0;

        for(int i=0;i<s.size();i++){
            if((i==0||s[i-1]==' ')&&s[i]!=' '){
                count++;
            }
        }
        //循环结束后,返回计数器的值,即单词的总数
        return count;
    }
};
相关推荐
tiankongdeyige2 小时前
游戏战斗系统学习第2篇:有限状态机 (FSM)
学习·游戏·typescript
an12321215 小时前
ARM嵌入式学习笔记:SPI通信协议详解
arm开发·笔记·学习
by209995 小时前
从结构体到对象:正式学习C++类的骨架、封装与this指针
c++·经验分享·学习
乌暮5 小时前
深入理解 Java 泛型:把「万能盒子」用对、用稳
java·开发语言·后端·学习
小雪崩6 小时前
嵌入式学习 day60:ARM汇编——触摸屏与SPI
汇编·arm开发·学习
问天_观心7 小时前
大模型训练与推理优化(二)
人工智能·深度学习·学习·大模型·transformer
Because_of_Her17 小时前
dfs-洪水填充技巧
笔记·算法·深度优先·洪水填充
xzal128 小时前
GESP Python笔记
笔记·python·算法
周玉奎先生8 小时前
CGM系列水泥基灌浆料型号参数解析及安庆重点工程应用匹配
经验分享·笔记·零售
海海不掉头发8 小时前
软件项目管理学习笔记-从软件危机到敏捷与DevOps
笔记·学习·devops