• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

  • 博客园
  • 联系
  • 订阅
  • 管理

View Post

AtCoder Grand Contest 6

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.

 

 

 

 

代码如下:

 

 

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 
 5 using namespace std;
 6 
 7 const int maxn = 105;
 8 char s[maxn], t[maxn];
 9 
10 int main()
11 {
12     int n;
13     int num;
14     while(scanf("%d", &n)==1&&n)
15     {
16         scanf("%s", s);
17         scanf("%s", t);
18         if(strcmp(s,t) == 0)
19             printf("%d\n", n);
20         else
21         {
22             int i, j;
23             int len1 = strlen(s);
24             int len2 = strlen(t);
25             num = 0;
26             for(i = 0, j = 0; i < len1&&j < len2; )
27             {
28                 if(s[i] == t[j])
29                 {
30                     num++;
31                     i++;
32                     j++;
33                 }
34                 else
35                 {
36                     i++;
37                 }
38             }
39             printf("%d\n", 2*n-num);
40         }
41     }
42     return 0;
43 }

 

posted on 2016-10-30 17:06  tony-cao  阅读(165)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3