使用字符串连接确定字符串旋转
编程面试中常见的挑战包括验证一个字符串是否是另一个字符串的旋转版本。给定两个字符串 s1 和 s2,任务是有效检查一个字符串是否只是另一个字符串的循环排列。
在这种情况下,候选人提供了一个解决方案,其中包括识别旋转点并将 s2 分解为两个段,s2a 和 s2b。通过连接这些片段并将结果与 s1 进行比较,可以确认旋转。
但是,面试官表示更喜欢更直接的方法。这是使用字符串连接和字符串搜索的更简单的解决方案:
Java 实现:
<code class="java">public static boolean isRotation(String s1, String s2) { return (s1.length() == s2.length()) && ((s1 + s1).indexOf(s2) != -1); }</code>
Python 实现:
<code class="python">def is_rotation(s1, s2): return len(s1) == len(s2) and s2 in s1 * 2</code>
在此解决方案中,我们首先确保两个字符串的长度相等。然后,我们将 s1 与其自身连接起来,有效地创建一个包含原始字符串及其旋转版本的字符串。通过检查该连接字符串中是否存在 s2,我们可以确定其中一个是否是另一个的旋转。
以上是## 字符串连接如何有效地确定字符串旋转?的详细内容。更多信息请关注PHP中文网其他相关文章!