如何确定一个字符串是否是另一个字符串的旋转
在软件面试中,候选人可能会遇到这样有趣的问题:给定两个字符串s1 和 s2,如何确定 s1 是否是 s2 的旋转变体?
当一根弦在枢轴点被分割并且两半以相反的顺序重新连接时,它会被旋转。例如,“stackoverflow”可以旋转为“tackoverflows”或“ackoverflowst”。
受访者提出的一种可能的解决方案是找到 s2 的最长前缀,该前缀是 s1 的子字符串。这标识了旋转点。一旦找到,就可以将 s2 分成两个子字符串,并检查它们的串联是否等于 s1。
但是,面试官要求更简单的解决方案。考虑以下方法:
在 Java 中,该方法可以实现如下:
<code class="java">boolean isRotation(String s1,String s2) { return (s1.length() == s2.length()) && ((s1+s1).indexOf(s2) != -1); }</code>
通过使用字符串连接和搜索,该解决方案可以有效地确定一个字符串是否是以下字符串的旋转版本另一个。
以上是一根弦是另一根弦的旋转吗? Java 中的一种简单方法。的详细内容。更多信息请关注PHP中文网其他相关文章!