LeetCode-434 字符串中的单词数

题目描述

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

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

示例:

输入: "Hello, my name is John"
输出: 5

解题思路

首先理解好题意,知道什么一个单词:对于一个一前一后都被空格所隔开的就是单词(第一个和最后一个可以看成自带一个空格)。这样我们不必关心一个单词里面有什么东西,我们只关心是不是先读一个空格然后再读一个空格,如果是就代表着一个空格。那如何可以快速找出判断是不是有一前一后的两个空格呢,我们只需要设置一个标致mark(bool型),mark为true就代表着已经读到了一个空格,mark为False就意味着没有读到空格。我们只需要每次读到一个不为空格的值再判断mark是否为true(是否刚刚已经读了一个空格)如果都满足我们就count加一,并且把空格置为false,代表着这个单词找完了,需要找下一个单词了,但是如果mark不为true就代表着先前没有读到空格,这个空格是一个单词前面那个,所以此时只需要把mark置为true即可,同时我们需要把mark置为true,为了读第一个单词的时候假定前面也有一个空格

代码实现

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
class Solution {
public:
    int countSegments(string s) {
        int cnt = 0;
        bool mark = true;
        for (int i = 0; i < s.size(); i++) {
            if (s[i] != ' ' && mark) {
                cnt++;
                mark = false;
            } else if (s[i] == ' ') mark = true;
        }
        return cnt;
    }
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 题目 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。 请注意,你可以假定字符串里不包括任何不可打印...
    LonnieQ阅读 793评论 0 1
  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 8,459评论 0 4
  • 题目 难度:★☆☆☆☆类型:字符串 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。 请注意,你可以...
    玖月晴阅读 6,187评论 0 0
  • 官网 中文版本 好的网站 Content-type: text/htmlBASH Section: User ...
    不排版阅读 9,947评论 0 5
  • 字符串 1.什么是字符串 序列:有序,不可变的。用单引号或者双引号括起来的任意字符(集)。 2.字符串中的字符 a...
    落幕丶丶阅读 4,231评论 0 0