zoukankan      html  css  js  c++  java
  • 编程之美Ex2——字符串移位包含的问题

    给定两个字符串s1,s2,要求判定s2是否能够被s1做循环移位得到的字符串包含。

    例如,

    给定s1=AABCD和s2=CDAA,返回true;

    给定s1=ABCD和s2=ACBD,返回false。

    法一:直接循环移位,用strstr()比较

     1 #include <iostream>
     2 #include <string>
     3 using namespace std;
     4 
     5 bool Check(char src[], char des[]);
     6 
     7 int main()
     8 {
     9     char src[] = "AABBCD";
    10     char des[] = "CDAA";
    11 
    12     bool res = Check(src,des);
    13     if(res)
    14         cout<<"true"<<endl;
    15     else
    16         cout<<"false"<<endl;
    17 
    18     return 0;
    19 
    20 }
    21 
    22 bool Check(char src[], char des[])
    23 {
    24     char temp = src[0];
    25     bool res = false;
    26     for(int i=0; i<strlen(src); ++i)
    27     {
    28         for(int j=0; j<strlen(src)-1;++j)
    29         {
    30             src[j] = src[j+1];
    31         }
    32         src[strlen(src)-1] = temp;
    33 
    34         if(strstr(src,des) != NULL)
    35             res = true;
    36     }
    37     return res;
    38 }

    法二:s2必然在s1s1之中,用空间换取时间。

  • 相关阅读:
    docker
    redis 3.2.6 on ubuntu 14.04
    go异常处理
    go语言的命令行库
    iptables
    nsq
    etcd-v2第一集
    rabbitmq, windows/linux, c/c++/node.js/golang/dotnet
    zeromq:c,c++,golang及nodejs使用
    golang下的grpc
  • 原文地址:https://www.cnblogs.com/Big-Rabbit/p/4404187.html
Copyright © 2011-2022 走看看