找出两个字符串中最大子字符串,如"abractyeyt","dgdsaeactyey"的最大子串为"actyet

简介:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// 最大子字符串.cpp : 定义控制台应用程序的入口点。
//
//找出两个字符串中最大子字符串,如"abractyeyt","dgdsaeactyey"的最大子串为"actyet"
 
#include <iostream>
#include <string>
using  namespace  std;
 
string MaxSameStr(string str1,string str2)
{
     string result;
     int  max=0,first;
     int  len=0; //相同字符串的长度
     int  k,q;
     
     //穷举
     for (unsigned int  i=0;i<str1.length();i++)
         for (unsigned int  j=0;j<str2.length();j++)
         {
             unsigned int  k=i;
             unsigned int  q=j;
             if  (str1[k]==str2[q]) //发现相同的字母
             {
                 first=k;  //标记起始位置
                 while (str1[k]==str2[q]&&q<str2.length()&&k<str1.length()) //继续比较后面的是否也相同
                 {
                     k++;q++;
                 }
                 len=k-first;
                 if (len>max) //是否为目前最长字符串
                 {
                     max=len;
                     string temp(str1,first,len);
                     result=temp;
                 }
             }
         }
         return  result;
}
int  main()
{
     string Str1,Str2;
     cout<< "请输入两个字符串" <<endl;
     cin>>Str1>>Str2;
     cout<< "结果为" <<MaxSameStr(Str1,Str2)<<endl;
     return  0;
}
1
//特别是这句while(str1[k]==str2[q]&&q<str2.length()&&k<str1.length())要加上后面的q<str2.length()&&k<str1.length(),不然会导致字符串越界。。
相关文章
|
4月前
|
存储
【字符串】最长不含重复字符的子字符串
【字符串】最长不含重复字符的子字符串
|
8月前
strstr的学习与使用及实现/查找字符串中的字符
strstr的学习与使用及实现/查找字符串中的字符
35 0
|
4月前
|
C++
C/C++判断字符串是否为另一字符串的子字符串
C/C++判断字符串是否为另一字符串的子字符串
54 0
|
4月前
|
C++
C++中从一个字符串中截取另一长度的子字符串
C++中从一个字符串中截取另一长度的子字符串
28 0
|
8月前
|
测试技术 索引
根据首尾字符串截取中间字符串
今天分享一个函数:虽然它非常简单,但是真的很好用!也很常用!比如 “我今天真的很高兴” 这句话,要把 `今天` 截取出来,我们可以直接调用函数拿到结果,不需要匹配索引、也不用写正则!
51 0
|
11月前
7-121 删除字符串中的子串
7-121 删除字符串中的子串
43 0
|
JavaScript 前端开发 索引
查找字符串中的字符串
查找字符串中的字符串
60 0
|
机器学习/深度学习 算法
字符串——459. 重复的子字符串
本专栏按照数组—链表—哈希—字符串—栈与队列—二叉树—回溯—贪心—动态规划—单调栈的顺序刷题,采用代码随想录所给的刷题顺序,一个正确的刷题顺序对算法学习是非常重要的,希望对大家有帮助