如何確定一個字串是否是另一個字串的旋轉
在軟體面試中,候選人可能會遇到這樣有趣的問題:給定兩個字串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中文網其他相關文章!