当前位置: 首页 > news >正文

Leetcode434. 字符串中的单词数

Every day a leetcode

题目来源:434. 字符串中的单词数

解法1:istringstream

我们知道,C++默认通过空格(或回车)来分割字符串输入,即区分不同的字符串输入。

istringstream类用于执行C++风格的串流的输入操作。它的作用是从string对象str中读取字符,用空格作为字符串分隔符。

代码:

/** @lc app=leetcode.cn id=434 lang=cpp** [434] 字符串中的单词数*/// @lc code=start
class Solution
{
public:int countSegments(string s){istringstream iss(s);vector<string> words;string word;while (iss >> word)words.push_back(word);return words.size();}
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n),其中n是字符串s的长度。

空间复杂度:O(n/2),其中n是字符串s的长度。

解法2:遍历

计算字符串中单词的数量,就等同于计数单词的第一个下标的个数。因此,我们只需要遍历整个字符串,统计每个单词的第一个下标的数目即可。

满足单词的第一个下标有以下两个条件:

  • 该下标对应的字符不为空格;
  • 该下标为初始下标或者该下标的前下标对应的字符为空格;

代码:

/** @lc app=leetcode.cn id=434 lang=cpp** [434] 字符串中的单词数*/// @lc code=start
// class Solution
// {
// public:
//     int countSegments(string s)
//     {
//         istringstream iss(s);
//         vector<string> words;
//         string word;
//         while (iss >> word)
//             words.push_back(word);
//         return words.size();
//     }
// };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;}
};
// @lc code=end

结果:

在这里插入图片描述

复杂度分析:

时间复杂度:O(n)

空间复杂度:O(1)

http://www.lryc.cn/news/65206.html

相关文章:

  • C++ cmake工程引入qt6和Quick 教程
  • JavaEE - 网络编程
  • 【Android车载系列】第11章 系统服务-SystemServer自定义服务
  • Lerna
  • 迁移学习 pytorch
  • 【python】keras包:深度学习( RNN循环神经网络 Recurrent Neural Networks)
  • vue框架快速入门
  • Java连接顺丰开放平台
  • 前端三剑客 - HTML
  • 【计算机视觉 | 自然语言处理】BLIP:统一视觉—语言理解和生成任务(论文讲解)
  • c++基础-运算符
  • 美术馆c++
  • 浅谈MySQL索引以及执行计划
  • 在c++项目中使用rapidjson(有具体的步骤,十分详细) windows10系统
  • 编译方式汇总:Makefile\configure\autogen.sh\configure.ac、Makefile.am文件
  • explicit关键字
  • [优雅的面试] 你了解python的对象吗
  • 【hello Linux】线程概念
  • JavaWeb07(MVC应用01[家居商城]连接数据库)
  • 如何使用电商API接口API接口如何应用
  • 【移动端网页布局】流式布局案例 ⑥ ( 多排按钮导航栏 | 设置浮动及宽度 | 设置图片样式 | 设置文本 )
  • 1. 先从云计算讲起
  • ZooKeeper安装与配置集群
  • 浅谈Mysql的RR和RC隔离级别的主要区别
  • Build生成器模式
  • C++程序设计——常见C++11新特性
  • Rust main 函数返回值类型不能是 String
  • 视频里的音乐怎么转换成mp3格式?
  • CSS3 grid网格布局
  • SPSS如何进行均值比较和T检验之案例实训?