用有穷自动机解一道面试题.docVIP

  • 3
  • 0
  • 约2.88千字
  • 约 5页
  • 2016-08-13 发布于重庆
  • 举报
用有穷自动机解一道面试题

用有穷自动机解一道面试题 题目的要求是:一个字符串由多个单词组成,这些单词由一个或者连连续多个空格分隔开,请写一个程序统计输入的字符串有多少个单词。 这个题目很简单,可能有N种方法可以解决它。把它用来做实例,并非是要想说明DFA的功能强大,而是因为它是一个说明DFA的好例子。这个DFA: 字母表:英文字母和空格。 状态:起始状态、单词状态、空格状态和接受状态。 转换规则: 起始状态下读到非空格,进入单词状态。 单词状态下读到空格,进入空格状态。 空格状态下读到非空格,进入单词状态。 在起始状态、单词状态和空格状态下读到’/0’,进入结束状态。 每次进入单词状态,单词数计数加1。 实现代码如下: //Build: gcc -DDEBUG -g countwords.c -o cw.exe #include?stdio.h #include?stdlib.h #include?assert.h ? int?CountWords(const?char*?pszStr) { ?????????enum ?????????{ ??????????????????STAT_START, ??????????????????STAT_IN_WORD, ??????????????????STAT_IN_SPACE ?????????}eState?=?STAT_START; ?????????i

文档评论(0)

1亿VIP精品文档

相关文档