两串旋转

作者: SmallRookie | 来源:发表于2018-12-24 21:29 被阅读0次

题目描述

如果对于一个字符串A,将A的前面任意一部分挪到后边去形成的字符串称为A的旋转词。比如A="12345",A的旋转词有"12345","23451","34512","45123"和"51234"。对于两个字符串A和B,请判断A和B是否互为旋转词。

给定两个字符串AB及他们的长度lenalenb,请返回一个bool值,代表他们是否互为旋转词。

测试样例:

"cdab",4,"abcd",4
返回:true

题解

算法思路:

  1. 判断str1和str2是否长度相等;
  2. 若长度相等,生成str1与str1的大字符串;
  3. 用KMP算法判断大字符串中是否含有str2。

class Rotation {
public:
    bool chkRotation(string A, int lena, string B, int lenb) {
        // write code here
        string tmp;
        if(lena != lenb) return false;
        tmp = A + A;
        if(tmp.find(B) != -1) return true;
        return false;
    }
};

相关文章

  • 两串旋转

    题目描述 如果对于一个字符串A,将A的前面任意一部分挪到后边去形成的字符串称为A的旋转词。比如A="12345",...

  • 问题:判断两串旋转

    如果对于一个字符串A,将A的前面任意一部分挪到后边去形成的字符串称为A的旋转词。比如A="12345",A的旋转词...

  • 3_5两串旋转

    如果对于一个字符串A,将A的前面任意一部分挪到后边去形成的字符串称为A的旋转词。比如A="12345",A的旋转词...

  • 2019-02-17 Day43待提高

    1.旋转字符串给定两个字符串, A 和 B。 A 的旋转操作就是将 A 最左边的字符移动到最右边。 例如, 若 A...

  • 旋转字符串 (lintcode:rotate-string)

    旋转字符串 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 例如: 对于字符串 "abcdefg...

  • 旋转字符串

    旋转字符串

  • lintCode题解(8)

    标签(空格分隔): lintCode 旋转字符串 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)...

  • 判断字符串str1是否是字符串str2的旋转词

    判断字符串str1是否是字符串str2的旋转词 对字符串的旋转操作描述如下:例如: str = "123456" ...

  • 牛客/力扣算法题

    1.逆转字符串 2.旋转字符串

  • LintCode算法刷题之旋转字符串

    链接:旋转字符串 描述 给定一个字符串(以字符数组的形式给出)和一个偏移量,根据偏移量原地旋转字符串(从左向右旋转...

网友评论

    本文标题:两串旋转

    本文链接:https://www.haomeiwen.com/subject/zqetlqtx.html