每日一题&&学习笔记

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

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

示例:

复制代码
输入: "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;
    }
};
相关推荐
沐矢羽11 分钟前
Tomcat PUT方法任意写文件漏洞学习
学习·tomcat
好奇龙猫12 分钟前
日语学习-日语知识点小记-进阶-JLPT-N1阶段蓝宝书,共120语法(10):91-100语法+考え方13
学习
向阳花开_miemie42 分钟前
Android音频学习(十八)——混音流程
学习·音视频
工大一只猿1 小时前
51单片机学习
嵌入式硬件·学习·51单片机
c0d1ng1 小时前
量子计算学习(第十四周周报)
学习·量子计算
Hello_Embed8 小时前
STM32HAL 快速入门(二十):UART 中断改进 —— 环形缓冲区解决数据丢失
笔记·stm32·单片机·学习·嵌入式软件
咸甜适中9 小时前
rust语言 (1.88) 学习笔记:客户端和服务器端同在一个项目中
笔记·学习·rust
Grassto9 小时前
RAG 从入门到放弃?丐版 demo 实战笔记(go+python)
笔记
Magnetic_h10 小时前
【iOS】设计模式复习
笔记·学习·ios·设计模式·objective-c·cocoa
研梦非凡10 小时前
ICCV 2025|从粗到细:用于高效3D高斯溅射的可学习离散小波变换
人工智能·深度学习·学习·3d