1. /*
  2. * @lc app=leetcode.cn id=434 lang=c
  3. *
  4. * [434] 字符串中的单词数
  5. *
  6. * https://leetcode-cn.com/problems/number-of-segments-in-a-string/description/
  7. *
  8. * algorithms
  9. * Easy (29.13%)
  10. * Total Accepted: 4.2K
  11. * Total Submissions: 14.2K
  12. * Testcase Example: '"Hello, my name is John"'
  13. *
  14. * 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。
  15. *
  16. * 请注意,你可以假定字符串里不包括任何不可打印的字符。
  17. *
  18. * 示例:
  19. *
  20. * 输入: "Hello, my name is John"
  21. * 输出: 5
  22. *
  23. *
  24. */
  25. int countSegments(char* s) {
  26. if(s==NULL||strlen(s)==) return ;
  27. int i=,j,count=;
  28. while(i<strlen(s)){
  29. while(i<strlen(s)&&s[i]==' ') i++;//i每次移到第一个非空格处
  30. j = i;
  31. while(j<strlen(s)&&s[j]!=' ')j++;//j每次移到第一个空格处,i和j之间就是一个单词
  32. if(i<j){
  33. i=j;
  34. count++;
  35. }
  36. else
  37. {
  38. return count;//当最后一个单词后面有空格时,从此出口结束。
  39. }
  40. }
  41. return count;//当最后一个单词后面没有空格时,从此出口结束。
  42. }

思路是 双指针,i找到第一个非空格字符,j从i的位置开始找到第一个为空格的字符,i<j,那么ij之间的就是一个单词,计数就加一,然后i移动到j的位置进行下一次寻找。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

python:

  1. #
  2. # @lc app=leetcode.cn id=434 lang=python3
  3. #
  4. # [434] 字符串中的单词数
  5. #
  6. # https://leetcode-cn.com/problems/number-of-segments-in-a-string/description/
  7. #
  8. # algorithms
  9. # Easy (29.13%)
  10. # Total Accepted: 4.2K
  11. # Total Submissions: 14.2K
  12. # Testcase Example: '"Hello, my name is John"'
  13. #
  14. # 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。
  15. #
  16. # 请注意,你可以假定字符串里不包括任何不可打印的字符。
  17. #
  18. # 示例:
  19. #
  20. # 输入: "Hello, my name is John"
  21. # 输出: 5
  22. #
  23. #
  24. #
  25. class Solution:
  26. def countSegments(self, s: str) -> int:
  27. return len(s.split())

python就很简单了。一个split搞定。

Leecode刷题之旅-C语言/python-434 字符串中的单词数的更多相关文章

  1. Leecode刷题之旅-C语言/python-344反转字符串

    /* * @lc app=leetcode.cn id=344 lang=c * * [344] 反转字符串 * * https://leetcode-cn.com/problems/reverse- ...

  2. Leecode刷题之旅-C语言/python-26.删除数组中的重复项

    /* * @lc app=leetcode.cn id=26 lang=c * * [26] 删除排序数组中的重复项 * * https://leetcode-cn.com/problems/remo ...

  3. Leecode刷题之旅-C语言/python-387 字符串中的第一个唯一字符

    /* * @lc app=leetcode.cn id=387 lang=c * * [387] 字符串中的第一个唯一字符 * * https://leetcode-cn.com/problems/f ...

  4. Leecode刷题之旅-C语言/python-28.实现strstr()

    /* * @lc app=leetcode.cn id=28 lang=c * * [28] 实现strStr() * * https://leetcode-cn.com/problems/imple ...

  5. Leecode刷题之旅-C语言/python-14.最长公共前缀

    /* * @lc app=leetcode.cn id=14 lang=c * * [14] 最长公共前缀 * * https://leetcode-cn.com/problems/longest-c ...

  6. Leecode刷题之旅-C语言/python-1.两数之和

    开学后忙的焦头烂额(懒得很),正式开始刷leecode的题目了. 想了想c语言是最最基础的语言,虽然有很多其他语言很简单,有更多的函数可以用,但c语言能煅炼下自己的思考能力.python则是最流行的语 ...

  7. Leecode刷题之旅-C语言/python-7.整数反转

    /* * @lc app=leetcode.cn id=7 lang=c * * [7] 整数反转 * * https://leetcode-cn.com/problems/reverse-integ ...

  8. Leecode刷题之旅-C语言/python-326 3的幂

    /* * @lc app=leetcode.cn id=326 lang=c * * [326] 3的幂 * * https://leetcode-cn.com/problems/power-of-t ...

  9. Leecode刷题之旅-C语言/python-263丑数

    /* * @lc app=leetcode.cn id=263 lang=c * * [263] 丑数 * * https://leetcode-cn.com/problems/ugly-number ...

随机推荐

  1. ASP.NET错误处理的方式(一)

    对Web应用程序来说,发生不可预知的错误和异常在所难免,我们必须为Web程序提供错误处理机制.当错误发生时,我们必须做好两件事情:一是将错误信息记录日志,发邮件通知网站维护人员,方便技术人员对错误进行 ...

  2. SharePoint2007深入浅出——使用jQuery UI

    jQuery1.6.4.js + jQuery UI 1.8.16.js 只有这个版本在IE8下的兼容性视图+Quirks(文本模式),dialog可以正常显示.

  3. Scala隐式转换和隐式参数

    隐式转换 Scala提供的隐式转换和隐式参数功能,是非常有特色的功能.是Java等编程语言所没有的功能.它可以允许你手动指定,将某种类型的对象转换成其他类型的对象或者是给一个类增加方法.通过这些功能, ...

  4. memcached源码剖析4:并发模型

    memcached是一个典型的单进程系统.虽然是单进程,但是memcached内部通过多线程实现了master-worker模型,这也是服务端最常见的一种并发模型.实际上,除了master线程和wor ...

  5. Java中的Scanner类

    java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入.创建Scanner对象的基本语法: Scanner s = new Scanner(System. ...

  6. ipconfig命令一览

    前文用到了ipconfig /displaydns和ipconfig /flushdns,加上之前经常ipconfig查ip,今天看了一下别的命令,用的不多,仅作备忘~~ 命令行窗口中输入ipconf ...

  7. Ubuntu下命令行安装jdk,android-studio,及genymotion虚拟机来进行android开发

    安装JDK 从oracle官网下最新版的linux64位的jdk包(现在最新为jdk-8u92-linux-x64.tar.gz) 命令如下 新建文件夹-解压 sudo mkdir /usr/lib/ ...

  8. Hadoop学习之路(二十一)MapReduce实现Reduce Join(多个文件联合查询)

    MapReduce Join 对两份数据data1和data2进行关键词连接是一个很通用的问题,如果数据量比较小,可以在内存中完成连接. 如果数据量比较大,在内存进行连接操会发生OOM.mapredu ...

  9. [Python 多线程] GIL全局解释器锁 (十三)

    Queue 标准库queue模块,提供FIFO(先进先出)的Queue.LIFO(后进先出)的队列.优先队列. Queue类是线程安全的,适用于多线程间安全的交换数据.内部使用了Lock和Condit ...

  10. coco定义的小物体中物体大物体的尺寸

    http://cocodataset.org/#detection-leaderboard