每日一题&&学习笔记

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

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

示例:

复制代码
输入: "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;
    }
};
相关推荐
崎岖Qiu5 小时前
【计算机网络 | 第十篇】以太网的 MAC 层
网络·笔记·计算机网络·mac地址
●VON5 小时前
HarmonyOS应用开发实战(基础篇)Day01-《ArkTS基本知识》
学习·华为·harmonyos·鸿蒙·von
BlackWolfSky5 小时前
鸿蒙高级课程笔记2—应用性能优化
笔记·华为·harmonyos
玄同7655 小时前
Python Random 模块深度解析:从基础 API 到 AI / 大模型工程化实践
人工智能·笔记·python·学习·算法·语言模型·llm
符哥20085 小时前
C++ 适合初学者的学习笔记整理
c++·笔记·学习
ujainu5 小时前
让笔记触手可及:为 Flutter + OpenHarmony 鸿蒙记事本添加实时搜索(二)
笔记·flutter·openharmony
曦月逸霜5 小时前
Python快速入门——学习笔记(持续更新中~)
笔记·python·学习
AI视觉网奇5 小时前
blender 导入fbx 黑色骨骼
学习·算法·ue5·blender
星火开发设计5 小时前
this 指针:指向对象自身的隐含指针
开发语言·数据结构·c++·学习·指针·知识
Gain_chance5 小时前
37-学习笔记尚硅谷数仓搭建-ADS层分析并以各品牌商品下单统计为例
笔记·学习