zoukankan      html  css  js  c++  java
  • t2712:字符串移位包含问题

    t2712:字符串移位包含问题
       总时间限制:1000ms  内存限制:65536kB
    描述
        给定两个字符串s1和s2,要求判定其中一个字符串
        是否是另一字符串通过循环移位后的子字符串。例如
        CDAA是由AABCD两次移位后BCDAA的子串,而ABCD
        与ACBD不能通过移位来得到其中一个字符串是另一个字
        符串循环移位的子串。
    输入
        第一行有一个整数n,表示这组测试数据共有n行。
        其后n行,每行由两个字符串组成。
    输出
        如果一个字符串是另一字符串通过循环移位的子串,
        则返回true,否则返回false。
    样例输入
        2
        AABCD CDAA
        ABCD ACBD
    样例输出
        true
        false

    分析:据网上流传资料,假如两个串a和b满足:b是a循环移位后的一个子串,则b是串a&a的子串。当然,在这之前要满足LenA>=LenB,否则不科学不合理。

     1 #include <stdio.h>
     2 #include<string.h>
     3 int main(int argc, char *argv[]) {
     4     int n,i;
     5     char a[10000],b[10000],t[20000];
     6     char *p;
     7     
     8     scanf("%d",&n);
     9     //printf("%d
    ",n);
    10     getchar();
    11     for(i=0;i<n;i++)
    12     {
    13         scanf("%s%s",a,b);
    14         getchar();
    15         //printf("%s %s
    ",a,b);
    16         if(strlen(a)>=strlen(b))
    17         {
    18             t[0]='';
    19             strcpy(t,a);
    20             strcat(t,a);
    21             p=NULL;
    22             p=strstr(t,b);
    23             if(p!=NULL) printf("true
    ");
    24             else printf("false
    ");
    25         }
    26         else
    27         {
    28             t[0]='';
    29             strcpy(t,b);
    30             strcat(t,b);
    31             p=NULL;
    32             p=strstr(t,a);
    33             if(p!=NULL) printf("true
    ");
    34             else printf("false
    ");
    35         }/**/
    36     }
    37     return 0;
    38 }
  • 相关阅读:
    js解码
    node.js关于传送数据的二三事
    node下新建工程
    mysql配置
    mongodb配置及简单示例
    vue使用watch 观察路由变化,重新获取内容
    vue 封装方法
    ES6,import时如何正确使用花括号'{ }'
    css字体图标的制作
    vue实现淘宝商品详情页属性选择功能
  • 原文地址:https://www.cnblogs.com/huashanqingzhu/p/5133764.html
Copyright © 2011-2022 走看看