zoukankan      html  css  js  c++  java
  • ECNUOJ 2147 字符环

    字符环

    Time Limit:1000MS Memory Limit:65536KB
    Total Submit:562 Accepted:146

    Description 

    字符环:就是将给定的一个字符串,首尾相连而形成的一个环。
    现在我们来玩一个有趣的两人游戏:
    每次甲给出两个字符串A和B,然后让乙判断字符串B是否能够被字符环A所包含.
    例如,A = aabcd , B = cdaa , 那么B可以包含在A经过旋转后的字符串A’ = cdaab中.

    Input 

    输入数据的第一行,一个正整数N,表示测试数据的组数.
    对于每个数据:
    首先2个正整数lengtha 和 lengthb代表字符串A和字符串B的长度。
    接下来一行有两个被一个空格隔开的字符串A和B,A和B的长度如上所输入的长度。
    长度的范围是1<=length<=100,并且字符串种只含有小写字母

    Output 

    对于每组测试数据,输出只有一行

    如果B字符串含在字符环A中,则输出:YES 否则输出:NO

    Sample Input 

    2
    5 4
    aabcd cdaa
    5 4
    babcd cdaa

    Sample Output 

    YES
    NO


    Hint:
    aabcd 经过顺时针循环移动可以得到:aabcd-->abcda-->bcdaa-->abcda-->cdaab-->daabc
    babcd 经过顺时针循环移动可以得到:babcd-->abcdb-->bcdba-->cdbab-->dbabc-->babcd

    Source

    第一届程序设计竞赛

    解题:这么傻逼的题目居然只有这么点AC率。。。

    喜欢坑爹,会出现m大于n的情况,特别要注意这个

     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 string a,b;
     4 int main() {
     5     int kase,n,m;
     6     ios::sync_with_stdio(false);
     7     cin>>kase;
     8     while(kase--) {
     9         cin>>n>>m;
    10         cin>>a>>b;
    11         if(m > n) {
    12             puts("NO");
    13             continue;
    14         }
    15         a += a;
    16         if(a.find(b) == a.npos) puts("NO");
    17         else puts("YES");
    18     }
    19     return 0;
    20 }
    View Code
  • 相关阅读:
    多线程
    事务的概念与四大特性(ACID)
    Error和Exception的区别
    运算符的使用与注意事项(二)
    运算符的使用与注意事项(一)
    GOJS使用--前端拓扑图
    python算法实现分治法demo
    MySQL主从复制配置
    MySQL锁
    show profile查看SQL执行生命周期
  • 原文地址:https://www.cnblogs.com/crackpotisback/p/4638556.html
Copyright © 2011-2022 走看看