1077. Kuchiguse
发布日期:2021-11-16 18:49:30 浏览次数:15 分类:技术文章

本文共 953 字,大约阅读时间需要 3 分钟。

Tips:

  • 此题采用的是边输入边比较的方法,拿第一次输入的字符串依次和后面输入的字符串进行比较,left下标非递减.
  • 因为读入的字符串可能带有空格,于是乎gets(common)连续执行了两次才去除了回车的麻烦.具体原因还没深究,标记下以后再来更新.
  • 中间循环体加入了left<=rigth,这样如果前面有完全不匹配的字符串时,left就会赋值大于right,从而不再执行循环的内容.
  • 相同代码用Java实现过,有一个点超时.所以在写题的时候,尽量用C/C++吧.
#include 
#include
int main(int argc, const char * argv[]) { int n,i,j,k,left,right; char common[256],c[256]; while(scanf("%d",&n) != EOF) { gets(common); gets(common); left = 0; right = strlen(common) - 1; for(i = 1;i < n;i++){ gets(c); for(j = right,k = strlen(c) - 1;j >= left && k >= 0 && left <= right;j--,k--){ if(common[j] != c[k]){ break; } } left = ++j; } if(left > right) printf("nai\n"); else{ for(i = left;i <= right;i++) printf("%c",common[i]); printf("\n"); } } return 0;}

转载地址:https://blog.csdn.net/Thare_Lam/article/details/49129809 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:1078. Hashing
下一篇:1027. Colors in Mars

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年03月23日 20时54分48秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章