gpt4 book ai didi

c++ - 如何检查 2 个字符串是否相互旋转?

转载 作者:太空狗 更新时间:2023-10-29 23:41:48 24 4
gpt4 key购买 nike

给定 2 个字符串,设计一个函数,可以在不对它们进行任何更改的情况下检查它们是否相互旋转?返回值为 bool 值。

例如 ABCD、ABDC,它们不是旋转。返回错误

ABCD、CDAB 或 DABC 是旋转。返回真。

我的解决方案:

将其中一个向右或向左移动一个位置,然后在每次迭代时比较它们。如果它们在所有迭代中都不相等,则返回 false。否则,返回真。

它是 O(n)。还有其他更有效的解决方案吗?如果它们的内容无法更改怎么办?

谢谢

最佳答案

  1. 将给定的字符串与给定的字符串连接起来。

  2. 在连接的字符串中搜索目标字符串。

例子:

Given = CDAB

After step 1, Concatenated = CDABCDAB

After step 2, Success CDABCDAB
^^^^

关于c++ - 如何检查 2 个字符串是否相互旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7895810/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com