题目:
分析:
#include <string>
#include <iostream>
using namespace std;
int main()
{
string s1;
string s2;
while(cin>>s1>>s2)
{
int max = 0;
//string tmp;
for (int i = 0; i<s1.size(); i++)
{
int begin = i;//记录s1起始位置
for (int j = 0; j < s2.size(); j++)
{
int begin1 = j;//记录s2起始位置
int count = 0;
//当对应相等,同时往后挪动,计数加1
while (j < s2.size() && ((s1[i] == s2[j] || (s1[i] + 32 - 'a') % 32 == (s2[j] + 32 - 'a') % 32)))
{
count++;
j++;
i++;
}
//出来说明一段连续的公共串已比较完,则看是不是要更新max
if (count>max)
{
max = count;
//tmp = s1.substr(i, max);
}
//更新完要重置i和j的位置
j = begin1;
i = begin;
}
//这是每次以s1串中字母为首的字母,得重置
i = begin;
}
cout << max << endl;
//cout << tmp << endl;
}
return 0;
}