在一个大字符串中寻找子串

news/2024/11/6 17:23:05/

在一个大字符串中寻找子串的两种实现方法

第一种是使用一个点进行查找的方式,以下是实现的代码。

bool findSub1(string  scr, string tar)
{using namespace std;if (scr.empty() || tar.empty() || scr.size() < tar.size())return false;for (int i = 0; i < scr.size(); i++){int temp = i;if (scr[i] == tar[0]){int j;for (j = 1, i = temp + 1; j < tar.size(), i < (temp + tar.size()); j++, i++){if (scr[i] != tar[j])break;}if (j == tar.size())return true;}}return false;
}

我们还可以使用两个监测点相距一个tar.size()的方式进行查找,以下是代码。

bool findSub2(string scr, string tar)
{using namespace std;if (scr.empty() || tar.empty() || scr.size() < tar.size())return false;int i, j;for (i = 0, j = tar.size() - 1; i < (scr.size() - tar.size()), j < scr.size(); i++, j++){if (scr[i] == tar[0] && scr[j] == tar[tar.size() - 1]){int m = 1;int k = i + 1;while (k < j) //k and m are syncronized{if (scr[k] != tar[m])break;k++; m++;}if (k == j) //since in the last loop, 1 is still added to kreturn true;}}return false;
}

虽然两套代码长相不同,但是逻辑上还是没有逃过对每一个元素进行遍历的本质。其实偷懒一点的方法是直接使用头文件cstring下的string scr.find(string tar, 0)。第二个参数是要查找的起始位置。但是动动脑子多想几种办法总之是对编程能力提升有好处的。

第一次写这东西,初衷是想记录一下自己的计算机学习历程,当然我也希望我的内容能够给各位看官提供一点帮助。


http://www.ppmy.cn/news/681728.html

相关文章

纪念左耳朵耗子(陈皓)

5月17日&#xff0c;MegaEase 公司在 GitHub 创建了「纪念左耳朵耗子」仓库&#xff0c;用于记录关于陈皓本人的一些生平经历&#xff0c;您如果认识陈皓&#xff0c; 或曾经和陈皓打过交道&#xff0c;欢迎您通过PR来写出您和陈皓的故事。 仓库地址&#xff1a;https://githu…

“耳朵人艺术”敲响了中国,也叫醒了世界

2011年,当代艺术家田太权创立了“耳朵人”这个少儿美术教育品牌,从最初的12个孩子到重庆地区3个校区、一个分校的上千学员,再到线上教学成为几千个孩子的朋友。这九年时间,不仅是数字的累积,也是一个品牌的沉淀。 一、不惧艰难,努力改变 “因为想改变中国教育现状,从而改变中…

对耳朵伤害最小的耳机类型有哪些,对耳朵伤害小的骨传导耳机

现在耳机的佩戴方式越来越多样化&#xff0c;完美最常见的入耳式耳机&#xff0c;长时间佩戴会导致耳朵肿胀、不适&#xff0c;如果换成骨传导耳机就不会有这个困扰了&#xff0c;骨传导耳机利用开放式听声音的方式&#xff0c;可以在极大程度上减少对听力的损害&#xff0c;从…

悼念浩哥(左耳朵耗子),一个纯粹的技术人

上周末听闻浩哥的事了&#xff0c;期初还不信。在网上搜索消息&#xff0c;看来是真的。他才四十多岁&#xff0c;觉得非常可惜。很早就关注过浩哥&#xff0c;他是一位正直纯粹和爱分享的技术大牛。无论是技术分享还是人生感悟&#xff0c;或者是成长相关&#xff0c;都让我学…

耳朵被宝宝意外戳成耳膜穿孔

4.16 耳朵被宝宝意外戳成耳膜穿孔 正在给宝宝涂他的肯德基小画家&#xff0c;他就站在我旁边玩&#xff0c;突然发现了我头上绾的簪子&#xff0c;就把簪子拔了下来&#xff0c;我的头发都散开了&#xff0c;他很兴奋&#xff0c;拿我的簪子当成一个新的玩具了。 突然一下觉得右…

耳朵后神经疼是怎么回事,耳朵引起的神经疼痛

耳朵后面疼痛是咋回事 耳部感觉神经很丰富,而且和邻近器官的神经也有联系,所以耳痛除了是耳本身疾病的症状之外,也可能为邻近器官的疾病发生的反射性耳痛。 耳痛可能是什么病?耳部感觉神经很丰富,而且和邻近器官的神经也有联系,所以耳痛除了是耳本身疾病的症状之外,也可能为…

左耳朵耗子

晚上回来后&#xff0c;到coolshell上看文章。 程序员是一件非常累的工作&#xff0c;在我看到稚晖君做出那么多优秀的产品&#xff0c;我是很惊叹的&#xff0c;因为我知道那需要付出非常非常多的时间和精力&#xff0c;当大家都在夸赞的时候&#xff0c;我也能发现稚晖君发梢…

耳朵的穴位

最近经常觉得耳朵涨涨的&#xff0c;人的精神状态也不太佳&#xff0c;突然想到人体中的很多脏器和耳朵上的穴位有些关系&#xff0c;想若稍微刺激一下这些穴位&#xff0c;是不是会有些效果呢&#xff1f; 于是打算做些尝试&#xff0c;先从网上找了下面2张图&#xff1a; 简…