问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何判断一个字符串是否包含另一个字符串

发布网友 发布时间:2022-04-27 11:57

我来回答

2个回答

热心网友 时间:2022-04-07 22:00

包含有两种意思:字符串t是字符串s的字串(t的每个字符在s中顺序排列,但不一定连续),例如"srt"被包含于"ehiseriutey"字符串s的某段与字符串t相等(t的每个字符在s中顺序排列,且连续),例如"skir"被包含于"hskskirtnn"对于第一种,用贪心算法,即按照字符串s的每一位枚举,匹配t中的第i位(i从0开始),便继续在s中匹配t的下一位,直到将t找完(即s包含t),如果到了s的最后一位,t仍没有被匹配完,那么s不包含t。代码如下:// 第一种情况 #include <iostream>#include <cstring>using namespace std;int main(){ char s[100],t[100]; cin>>s; cin>>t; int slen = strlen(s) , tlen = strlen(t); // 获取s和t的长度 int i = 0; bool flag = false; // 标识字符串t是否被匹配完全 for(int j=0 ; j<slen ; j++) // 枚举s的每一位 { if(s[j] == t[i]) // 如果s的第j位和t的第i位相同,继续在s中匹配t[i+1] i++; // 继续在s中匹配t[i+1] if(i==tlen) 如果t的所有位都在s中被匹配 { flag = true; // 返回"t被包含于s" break; // 跳出循环,节省时间 } } // 如果此时t没有被完全匹配(i<n),则flag保持false。 if(flag) cout<<"t被包含于s"<<endl; else cout<<"t不被包含于s"<<endl; return 0;}以上是第一种情况的代码。对于第二种,仍可以用贪心,设t的长度为tlen,则判断s中以每一位开始的长度为tlen的字串是否等于t,如果等于,则输出是,如果s的每一位都不满足要求,则输出否。代码如下:// 第二种情况 #include <iostream>#include <cstring>using namespace std;int main(){ char s[100],t[100]; cin>>s; cin>>t; int slen = strlen(s) , tlen = strlen(t); // 获取s和t的长度 bool flag = false; // 标识字符串t是否被匹配完全 char tmp[tlen]; //用来临时存储s[i]到s[i+tlen-1]组成的字符串,便于和t比较 for(int i=0 ; i<slen-tlen ; i++) // 枚举s的每一位,如果到了大于slen-tlen的长度,则剩余长度小于tlen,不可能匹配出t { for(int j=i;j<i+tlen;j++) // 将以s[i]开头的tlen位字符串复制到tmp里 tmp[j-i]=s[j]; if(strcmp(tmp,t) == 0) // 如果和t匹配 { flag = true; break; } } if(flag) cout<<"t被包含于s"<<endl; else cout<<"t不被包含于s"<<endl; return 0;}另外,还有一种更强大的kmp算法,将每一位枚举变成了直接跳转到可能匹配的字符,可以自行搜索。

热心网友 时间:2022-04-07 23:18

String类中有一个方法 public boolean contains(Sting s)就是用来判断当前字符串是否含有参数指定的字符串 例 s1=“takecatb” s2=“te” 语句:s1.contains(s2) //s1调用这个方法 若其值为ture说明s1包含s2 若为fasle 则不包含
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
滴管的化妆品如何确定已经使用 什么是工程硕士啊 什么是工程硕士呀 为什么工科的叫做工程硕士,工学的叫做工学硕士? 谁能给我排几套炉石传说潜行者的平民化套牌,要大众化的,稀有、史诗、传... 炉石传说推荐新手卡组潜行者? 炉石传说潜行者通灵学园扩展包新卡有哪些_通灵学园扩展包潜行者卡牌大 ... 炉石传说狗头人冒险盗贼卡牌 潜行者初始套牌一览 马桶堵了怎么办 坐便器冲水方式哪种好 各位喜欢郑源的朋友,帮忙查一下林学〈森林保护〉的就业岗位_百度... 加推系统是如何给全员统一下发推广素材的? 用英文5句话写冬天的句子? 判断一个字符串里是否包含另一个字符串所有的字符 加推数字化营销要怎么做? 全员营销的英文表达是怎么样的呢? 有的人翻译为“general marketing”这样对吗? 怎么判断一个字符串是否包含另一个字符串 c++ string怎样判断字符串里面是否含有某个字符串? 如何理解全员营销的意义 什么是全员营销理念,全方位服务含义是什么,优质服务的含义 请问,全员营销做的好的行业案例有哪些?求经验分享。 什么是全员营销理念、全方位服务含义是什么? 如何建立全员营销意识 什么是全员营销 全员营销的案例 苹果手机里面下载的歌怎么删除啊 复刻手表靠谱吗? 如何鉴别真假劳力士? 正装表怎么选? “国版”国际品牌腕表与国外的有什么区别? 切利尼KZ和Fk对比哪个好? 描写冬天的景色 英语句子 七个单词左右 为什么我们的销售那么不好?? 如何判断一个字符串中是否有指定字符 描写冬日景色的英语文章。急!急急! 如何提升品牌营销能力? 描写冬天的景色 英语句子 10个单词 中小型企业如何做好网络营销? 关于冬天的英语作文(最少8句)跪求啊!!! 企业进行营销传播组合决策时应考虑哪些因素 描写夏天 秋天 冬天英语句子 开厂子怎么样找销路 如何判断一个字符串中是否包含某一字符 求一篇关于冬天景物的英语短文,70词左右 关于冬天的美景的句子 用英文写一个地方的景色(写15句) vivo线充连接电源时有滋滋的响声怎么回事 合合的基本简介 合合的介绍 合合美美是什么意思啊? 分分合合的爱情是不是真爱?