恰恰舞步 C++


假设我们有两个字符串 s 和 t。我们需要检查 s 是否是 t 的旋转,换句话说,是否可以通过旋转 s 得到 t?

因此,如果输入类似于 s = "helloworld" 和 t = "worldhello",则输出将为 True。

为了解决这个问题,我们将遵循以下步骤:

  • 如果 s0 的大小不等于 s1 的大小,则:

    • 返回 false

  • s := s0 连接 s0

  • 如果 s1 在 s 中,则返回 true,否则返回 0。

让我们看看下面的实现以获得更好的理解:

示例

 在线演示

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   bool solve(string s0, string s1) {
      if(s0.size() != s1.size())
      return false;
      string s = s0 + s0;
      return s.find(s1) != string::npos;
   }
};
int main(){
   Solution ob;
   cout << (ob.solve("helloworld", "worldhello"));
}

输入

"helloworld", "worldhello"

输出

1

更新于: 2020年9月2日

159 次浏览

开启你的职业生涯

通过完成课程获得认证

立即开始
广告