AtCoder Grand Contest 6

时间:2021-01-21 23:28:02

A - Prefix and Suffix

题意:输入一个整形变量n和两个字符串s,t,使用一些规则求满足条件的最短字符串的长度;规则如下:这个最短字符串的长度不能小于n;它的前n个字符必须与s相同;它的后n个字符必须与t相同

分析:根据题意和样例可知,当s和t相等(长度、字符都相同)时,结果就是n;否则,将t与s逐个字符相比较,如果tj与si相等时,i加1,j加1,num(相等的数量);如果不相等,i加1.

代码如下:

 #include <iostream>
#include <cstdio>
#include <cstring> using namespace std; const int maxn = ;
char s[maxn], t[maxn]; int main()
{
int n;
int num;
while(scanf("%d", &n)==&&n)
{
scanf("%s", s);
scanf("%s", t);
if(strcmp(s,t) == )
printf("%d\n", n);
else
{
int i, j;
int len1 = strlen(s);
int len2 = strlen(t);
num = ;
for(i = , j = ; i < len1&&j < len2; )
{
if(s[i] == t[j])
{
num++;
i++;
j++;
}
else
{
i++;
}
}
printf("%d\n", *n-num);
}
}
return ;
}