JavaScript 程序检查字符串是否相互旋转

字符串相互旋转是指两个字符串可以向右或向左旋转以获得另一个字符串。在字符串的右旋转字符中,移位到其​​下一个索引,对于第零个索引,假设字符串在圆圈中,则采用最后一个索引的字符。左旋转与右旋转类似,但方向相反。我们将得到两个字符串,我们必须确定通过旋转字符串的字符是否可以得到另一个字符串。,登录后复制,登录后复制,解释:我们可以将第一个字符串向左侧旋转两次,得到第二个字符串。第一次循环后的 String1 将为“bcdefa”,在下一次循环中,它将与第二个字符串相同。,登录后复制,登录后复制,说明 – 在不获取原始字符串的情况下,我们可以旋转字符串或数组的最大旋转次数等于给定字符串或数组的长度。,这里,经过六次旋转后,我们无法从字符串1中得到字符串2,证明在最大旋转次数后不可能使两个字符串相等。,在这种方法中,我们只需将给定字符串旋转其长度次数并与另一个给定字符串进行匹配。,登录后复制,登录后复制登录后复制,上述代码的时间复杂度为 O(N*N),其中 N 是给定字符串的大小。,上述代码的空间复杂度为 O(1),因为我们没有使用任何空间。,在此程序中,我们将使用 KMP 算法来查找旋转,让我们转向代码。,登录后复制,登录后复制登录后复制,对于上面的程序,时间和空间复杂度都是O(N)。我们使用了额外的空间来存储 lps 数组中的值。,在本教程中,我们实现了一个 JavaScript 程序来检查是否可以通过向左或向右旋转字符串的字符来从另一个给定字符串中获取一个给定字符串。我们使用了朴素的方法,这花费了 O(N*N) 时间复杂度和 O(1) 空间复杂度。此外,我们还实现了时间和空间复杂度为 O(N) 的 KMP 算法。,以上就是JavaScript 程序检查字符串是否相互旋转的详细内容,更多请关注www.92cms.cn其它相关文章!
返回顶部
跳到底部

Copyright 2011-2024 南京追名网络科技有限公司 苏ICP备2023031119号-6 乌徒帮 All Rights Reserved Powered by Z-BlogPHP Theme By open开发