项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步

遇到这样一个问题:如果统计一段由字符和和空格组成的字符串中有多少个单词?
经典的解答方式为状态机的方法。

直接看代码吧,相关的解题思路已经在注释中:

package leilei.bit.edu.stacktest;public class WordCountOfState {public enum State {INIT_STATE,WORD_STATE,SPACE_STATE}public static int word_count(String sentence) {int count = 0;State state = State.INIT_STATE;char[] values = sentence.toCharArray();char[] values_add_end = new char[values.length+1];System.arraycopy(values, 0, values_add_end, 0, values.length);//以'\n'标志结束状态values_add_end[values_add_end.length-1] = '\n';for(char each:values_add_end) {switch(state) {/** 初始状态:如果输入为空格,进入空格状态;如果为字符,进入字符状态,count+1;*/case INIT_STATE:if(' ' != each) {count++;state = State.WORD_STATE;}else {state =State.SPACE_STATE;}break;/** 单词状态:输入为空格,进入空格状态;输入为字符,无任何操作;如果'\n',返回;*/case WORD_STATE:if(' ' == each) {state = State.SPACE_STATE;} else if('\n' == each) {return count;}break;/** 空格状态:输入为空格,什么也不做;如果是字符,进入字符状态,count+1;如果'\n',返回。*/case SPACE_STATE:if(' ' != each && '\n' != each) {count++;state = State.WORD_STATE;} else if('\n' == each) {return count;}break;}}return count;}public static void main(String[] args) {String sentence = " I love lucy and   lili  ";int count = word_count(sentence);System.out.println("All the words is: " + count);}}

结果为:

All the words is: 5

统计单词个数 状态机方法相关推荐

  1. c语言编程统计单词的个数,使用c语言如何统计单词个数

    使用c语言如何统计单词个数 发布时间:2020-04-21 13:58:58 来源:亿速云 阅读:207 作者:小新 使用c语言如何统计单词个数?相信有很多人都不太了解,今天小编为了让大家更加了解Go ...

  2. 开发可统计单词个数的Android驱动程序(2)

    开发可统计单词个数的Android驱动程序(1) 五.指定与驱动相关的信息 虽然指定这些信息不是必须的,但一个完整的Linux驱动程序都会指定这些与驱动相关的信息.一般需要为Linux驱动程序指定如下 ...

  3. python输入一个英文句子 输出单词个数_编写程序,给出一个英文句子,统计单词个数。_学小易找答案...

    [简答题]叙述pass语句的作用. [简答题]吹风机不工作,可以用万用表检测吗?在网上搜索关键词,吹风机不工作怎么办? [单选题]以下代码运行结果正确的是哪一项?() x=2 if x:print(T ...

  4. hadoop 文本统计一个字符的个数_hadoop统计单词个数 - 卡饭网

    hadoop入门之统计单词在文件中出现的个数示例 hadoop入门之统计单词在文件中出现的个数示例 Linux环境:CentOs6.4 Hadoop版本:hadoop-0.20.2 内容:统计hado ...

  5. P1026 统计单词个数

    原题链接 外网进不去 P1026 统计单词个数 题目大意 有一个字符串,以每行20个的方法输入(每行都满20个),一共有 p ( p ≤ 10 ) p(p\le 10) p(p≤10) 行.题目又会给 ...

  6. 统计单词个数(划分型)

    codevs 1040 统计单词个数 2001年NOIP全国联赛提高组  题目等级 : 黄金 Gold 题目描述 Description 给出一个长度不超过200的由小写英文字母组成的字母串(约定;该 ...

  7. codevs1040统计单词个数(区间+划分型dp)

    1040 统计单词个数 2001年NOIP全国联赛提高组  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题目描述 Description 给出一个长度不超过2 ...

  8. 【codevs1040】【01NOIPTG】统计单词个数,字符串的划分DP

    1040 统计单词个数 2001年NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题目描述 Description 给出一个长度不超过200的 ...

  9. C语言-统计单词个数

    目录 1 算法思想 2 实现1 3 实现2 1 算法思想 读取输入进来的一个字符串,统计其中单词的个数,由于每个单词字母不一样,长度不一样,所以来依靠识别单词来统计单词数是比较难的,下面观察一个字符串 ...

  10. python统计单词个数算法_python 统计单词个数和频次

    开始学习python,习题需要统计单词个数和频次.百度找到的代码好像都有问题.自己写了一个,调试通过. 环境:python: 3.9.1 64bit :  pycharm: 2020.2  电脑 wi ...

最新文章

  1. leetcode 378. Kth Smallest Element in a Sorted Matrix
  2. cpp遇到问题:include重复包含导致的redefinition
  3. Linux内核中影响tcp三次握手的一些协议配置
  4. Py之matplotlib:在matplotlib库中利用legend函数创建自定义图例(代码实现)
  5. vs自定义安装包的制作
  6. CATALAN数 学习
  7. 发现Java程序中的Bug
  8. 与JodaTime的DateTime和Google Guava的供应商嘲笑
  9. AudioServicesPlaySystemSound
  10. NCL做一个简单的EOF分析例子
  11. msp430单片机c语言开发,MSP430单片机开发总结
  12. 远程桌面由于以下原因无法连接远程计算机,win10远程桌面提示由于以下原因之一无法连接的解决教程...
  13. Oracle中用户查询表一定要加上表空间名的问题
  14. zoomit64_终极缩放工具? Sysinternal的ZoomIt
  15. 【全文翻译】YOLOv4:目标检测的最佳速度和准确性
  16. Axure9.0---输入文字时文本框提示消失
  17. 微光集市-登陆后用户对购物车的操作(版本4.0)
  18. 洛谷P1080 国王游戏(贪心)
  19. java用下拉框实现出生日期_纯JS实现出生日期[年月日]下拉菜单效果
  20. 数据逻辑结构 的 二元组表示法

热门文章

  1. Dawn 阿里开源前端开发构建工具
  2. 【益智题】十块钱去哪了?
  3. mysql-proxy实现读写分离
  4. 虚拟化这八年-【软件和信息服务】2014.11
  5. 分布式缓存MemcacheHelper
  6. DedeCMS5.5 调用当前内容页TAG标记的办法
  7. JVM类加载的各阶段过程(加载、验证、准备、解析、初始化)
  8. 同步异步阻塞非阻塞杂记 1
  9. JIRA中设置[描述]字段的默认值
  10. 訪问可能没有定义的data (通过static类型flash.net:FileReference引用)