#include <stdio.h>
int main()
{
char str[2][151] = {0};
int max_len = 0;
for(int i = 0; i < 2; i++)
{
if(gets(str[i]) == NULL)
{
return 0;
}
}
int len0 = strlen(str[0]);
int len1 = strlen(str[1]);
int size = 0;
int str0_left = 0;
int str0_right = 0;
int str1_left = 0;
int str1_right = 0;
int left_stop = 0;
int right_stop = 0;
/* 遍历,左,右滑动,分别使用双指针比较 */
for(int i = 0; i < len0; i++)
{
for(int j = 0; j < len1; j++)
{
/* 字符相等时,开始左右指针滑动比较 */
if(str[0][i] == str[1][j])
{
str0_left = i - 1;
str0_right = i + 1;
str1_left = j - 1;
str1_right = j + 1;
left_stop = 1;
right_stop = 1;
size = 1;
while(
(str0_left >= 0 && str1_left >= 0 && str[0][str0_left] == str[1][str1_left] && left_stop)
|| (str0_right < len0 && str1_right < len1 && str[0][str0_right] == str[1][str1_right] && right_stop)
)
{
int left_equals = 0;
int right_equals = 0;
if(str0_left >= 0 && str1_left >= 0)
{
left_equals = (str[0][str0_left] == str[1][str1_left]) ? 1 : 0 ;
/* 左指针标识停止滑动 */
left_stop = left_equals;
}
if(str0_right < len0 && str1_right < len1)
{
right_equals = (str[0][str0_right] == str[1][str1_right]) ? 1 : 0 ;
/* 右指针标识停止滑动 */
right_stop = right_equals;
}
/* 左右字符均相同,累加2 */
if(left_equals && right_equals)
{
size += 2;
}
else
{
size++;
}
if(left_stop)
{
str0_left--;
str1_left--;
}
if(right_stop)
{
str0_right++;
str1_right++;
}
}
if(size > max_len)
{
// printf("size = %d, i = %d, str0_left = %d, str0_right = %d \n", size, i, str0_left, str0_right);
// printf(" str1_left = %d, str1_right = %d \n", str1_left, str1_right);
max_len = size;
}
}
}
}
printf("%d", max_len);
return 0;
}