输入一行字符串,找出其中出现的相同且长度最长的字符串

来源:互联网 发布:淘宝精细化运营 编辑:程序博客网 时间:2024/06/04 18:12
#include <iostream>#include<string>using namespace std;int main(){    string str,tep;    cout<<"请输入字符串"<<endl;    cin>>str;for(int i=str.length()-1;i>1;i--){    for(int j=0;j<str.length();j++)    {        if(j+i<=str.length())        {             size_t t=0;             size_t num=0;         tep=str.substr(j,i);//从大到小取子串         t=str.find(tep);//正序查找,从0开始查找字符串tep,返回tep的位置         num=str.rfind(tep);//逆序查找,从0开始从后向前查找字符串,返回tep的位置   //从前后分别查找字符串,正常情况下是刚开始的长串找不到的,到后来的短串前后才会重         if(t!=num)//如果两次查找位置不一致说明存在重复子串         {          cout<<tep<<" "<< t+1<<endl;//输出子串及位置          return 0;//因为是从长到短,所以再短的也就不找了         }        }           }}return 0;}
转自:http://hi.baidu.com/uponyy630/blog/item/77a91715ee90be16962b43f1.html

原创粉丝点击