计数的模式匹配
模式匹配在生活中运用广泛,日常所见的指纹识别,人脸识别......无一不用到模式匹配,为了体现模式匹配的基本思想,本次实践将实现简单的字符串的计数模式匹配。
项目要求如下:采用顺序结构存储串,编写一个算法计算指定子串在一个字符串中出现的次数,如果该子串不出现则为0。
本次实践所用到的算法库点击此处参考
实现源代码如下:
//*Copyright  (c)2017,烟台大学计算机与控制工程学院*
//*All rights reservrd.*
//*文件名称 :main.cpp*
//*作者:田长航*
//*完成时间:2017年10月23日*
//*版本号:v1.0*
//*问题描述:算法库测试函数*
//*输入描述:无*
//*程序输出:测试结果*
#include <stdio.h>
#include "sqString.h"int str_count(SqString s,SqString t)
{int i=0,j=0,count=0;while (i<s.length && j<t.length){if (s.data[i]==t.data[j])   //继续匹配下一个字符{i++;                //主串和子串依次匹配下一个字符j++;}else                    //主串、子串指针回溯重新开始下一次匹配{i=i-j+1;            //主串从下一个位置开始匹配j=0;                //子串从头开始匹配}//在BF算法中,没有下面的这一部分//这里增加一个判断,可以“捕捉”到已经产生的匹配if (j>=t.length)        //如果j已经达到了子串的长度,产生了一个匹配{count++;            //匹配次数加1i=i-j+1;            //主串从下一个位置开始继续匹配j=0;                //子串从头开始匹配}}return(count);
}int main()
{SqString s,t;StrAssign(s,"accaccacacabcacbab");StrAssign(t,"accac");printf("s:");DispStr(s);printf("t:");DispStr(t);printf("%d\n",str_count(s,t));return 0;
}
运行结果截图如下:


数据结构上机实践第八周项目5 - 计数的模式匹配相关推荐

  1. 数据结构上机实践第八周项目9-广义表算法库及应用

    广义表算法库及应用 为了丰富算法库,以应对各类工程的需要,本次实践将进行广义表算法库的建立以及应用. 项目要求一: 建立广义表算法库,包括:  ① 头文glist.h,定义数据类型,声明函数:  ② ...

  2. 数据结构上机实践第八周项目2- 建立链串的算法库

    建立链串的算法库 一般每一种数据结构都不会局限于在连续空间内的存取,那我们的串自然也不反常,本次实践将建立链串的算法库,应用于有需求的工程当中,提高程序的容错性. 本次实践依然会用到多文件组织工程的建 ...

  3. 数据结构上机实践第八周项目8-稀疏矩阵的三元组表示的实现及应用

    稀疏矩阵的三元组表示的实现及应用 在现代社会中,在一个大量的人群集体中,总会有和某个人有相互之间的关系或者单向关系的,那我们的矩阵也是如此,稀疏矩阵压缩存储的方式,便可以让这种关系一目了然,巧妙应用. ...

  4. 数据结构上机实践第八周项目7—对称矩阵的压缩存储及基本运算

    对称矩阵的压缩存储及基本运算 贺老师的慕课当中,给我们拓展了这样的知识. 所以,本次的项目实践要求如下: 用压缩形式存储对称矩阵,实现下面的操作并测试 void Init(int *&b);/ ...

  5. 数据结构上机实践第八周项目6- 猴子选大王(数组版)

    猴子选大王(数组版) 在之前的项目中,实现了猴子选大王的项目要求,本次实践,将再次实现这个项目,但是运用数组的方法,做到一题多解,集思广益. 项目要求如下:一群猴子,编号是1,2,3 -m,这群猴子( ...

  6. 数据结构上机实践第八周项目4-字符串加密

    字符串加密 密码在我们的生活中很常见,现在的加密算法最常用的是MD5和SHA512散列式算法,最早的密码加密方式很简单,容易被破译,但是却引领信息安全的潮流,本次实践,将实现最早的字符串加密方式,采用 ...

  7. 数据结构上机实践第八周项目3-顺序串算法

    顺序串算法 本次实践项目要求如下: 采用顺序存储方式存储串,实现下列算法并测试:  (1)试编写算法实现将字符串S中所有值为c1的字符换成值为c2的字符:  void Trans(SqString * ...

  8. 数据结构上机实践第八周项目1- 建立顺序串的算法库

    建立顺序串的算法库 本次实践将建立顺序串的算法库,这样可以方便的将此算法运用于我们的所需的工程中,简化操作. 本次实践将用到多文件组织工程的建立,建立方法可以点击此处参照.(工程环境:Visual C ...

  9. 数据结构上机实践第三周项目2 - 建设“顺序表”算法库

    [项目2 - 建设"顺序表"算法库]  领会"0207将算法变程序"部分建议的方法,建设自己的专业基础设施算法库.这一周,建的是顺序表的算法库.  算法库包括两 ...

最新文章

  1. ????常用注意事项
  2. OI回忆录——一个过气OIer的制杖历程
  3. 让你的单细胞数据动起来!|iCellR(二)
  4. matlab时频分析工具箱安装_科研小班 | 加州大学伯克利分校 | 物理、电子工程:MATLAB信号和数据处理课题...
  5. 华为发布7nm制程麒麟810芯片:自研达芬奇架构 nova5首搭
  6. python正则_正则化方法及Python实现
  7. 为什么现在很小的孩子都会玩游戏,他们真的看得懂吗?
  8. 【jQuery笔记Part2】04-jQuery淡入淡出动画右下角广告案例
  9. eclipse中help下默认没有Software Updates选项解决办法
  10. 常规投放vs. static_cast与dynamic_cast [重复]
  11. linux 安装org2pg_Ora2Pg的安装和使用
  12. Demo之JavaEE的Web中数据分页显示
  13. 2021-09-07
  14. Oracle dmp文件结构探秘
  15. 【C语言】size与strlen的区别解析
  16. 分布式系统下的纠删码技术之Erasure Code
  17. 《预训练周刊》第53期:代码生成、通用任务变换器
  18. 电脑怎么调整图片分辨率?如何让图片清晰度变高?
  19. iOS 局域网通讯 MultipeerConnectivity
  20. List循环中指定删除元素(不止一个)

热门文章

  1. Codeforces Round #223 (Div. 2): C. Sereja and Prefixes(二分+递归)
  2. bzoj 2502: 清理雪道(有下界的最小流)
  3. HDU 5971 2016ICPC大连 A: Wrestling Match(二分图判断)
  4. 2016ICPC沈阳站总结
  5. JDK源码解析--ArrayList
  6. C++ STL string字符串内容修改和替换
  7. Ubuntu查看解释器的两条命令
  8. PAT-乙级-1035 插入与归并
  9. .net中Task.WaitAll和WaitAny同步的等待Task完成
  10. Java 9 揭秘(15. 增强的弃用注解)