首页  >  文章  >  后端开发  >  一根弦是另一根弦的旋转吗? Java 中的一种简单方法。

一根弦是另一根弦的旋转吗? Java 中的一种简单方法。

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-25 01:56:30568浏览

Is a String a Rotation of Another? A Simple Approach in Java.

如何确定一个字符串是否是另一个字符串的旋转

在软件面试中,候选人可能会遇到这样有趣的问题:给定两个字符串s1 和 s2,如何确定 s1 是否是 s2 的旋转变体?

当一根弦在枢轴点被分割并且两半以相反的顺序重新连接时,它会被旋转。例如,“stackoverflow”可以旋转为“tackoverflows”或“ackoverflowst”。

受访者提出的一种可能的解决方案是找到 s2 的最长前缀,该前缀是 s1 的子字符串。这标识了旋转点。一旦找到,就可以将 s2 分成两个子字符串,并检查它们的串联是否等于 s1。

但是,面试官要求更简单的解决方案。考虑以下方法:

  • 确保 s1 和 s2 具有相同的长度。
  • 验证 s2 是否作为 s1 中的子字符串存在,这是通过将 s1 与其自身连接并搜索来实现的s2.

在 Java 中,该方法可以实现如下:

<code class="java">boolean isRotation(String s1,String s2) {
    return (s1.length() == s2.length()) &amp;&amp; ((s1+s1).indexOf(s2) != -1);
}</code>

通过使用字符串连接和搜索,该解决方案可以有效地确定一个字符串是否是以下字符串的旋转版本另一个。

以上是一根弦是另一根弦的旋转吗? Java 中的一种简单方法。的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn