码迷,mamicode.com
首页 > 其他好文 > 详细

最长公共子串_暴力解法(不会正解)

时间:2019-01-25 19:21:19      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:common   输出   har   bit   div   col   代码   c++   str   

最长公共子串 lcs.cpp/.in/.out

计算两个字符串的最大公共子串(Longest Common Substring)的长度,字符不区分大小写,这里的最大公共子串要求的字串是连续的。

输入:

两行,每行一个字符串,字符串长度<=1000.

输出:

输出一个整数,表示公共子串的长度。

样例输入:

asdfas

werasdfaswer

样例输出:

6

下面上代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 char o[300],k[300];
 4 int main()
 5 {
 6 //    freopen("lcs.in","r",stdin);
 7 //    freopen("lcs.out","w",stdout);
 8     scanf("%s",&o);
 9     scanf("%s",&k);
10     int long_1=0,long_2=0;
11     while(o[long_1]!=\0)
12     {
13         long_1++;//数组长度(1)
14     }
15     while(k[long_2]!=\0)
16     {
17         long_2++;//数组长度(2)
18     }
19     int maxx=0;
20     for(int u=0;u<long_1;u++)//第一个数组的初始位置
21     {
22         for(int u2=0;u2<long_2;u2++)//第二个数组的初始位置
23         {
24             if(o[u]==k[u2])//如果初始位置处相同,就往后while循环找最长的相同长度
25             {
26                 int now_long=1;
27                 while(o[u+now_long]!=\0&&k[u2+now_long]!=\0&&(o[u+now_long]==k[u2+now_long]||o[u+now_long]+A-a==k[u2+now_long]||o[u+now_long]-A+a==k[u2+now_long]))//判断是否到行尾以及是否大小写
28                 {
29                     now_long++;//如果相同
30                 }
31                 maxx=max(maxx,now_long);//长度更新
32             }
33         }
34     } 
35     cout<<maxx;
36 }

 

最长公共子串_暴力解法(不会正解)

标签:common   输出   har   bit   div   col   代码   c++   str   

原文地址:https://www.cnblogs.com/OI-xyf/p/10321211.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!