首頁  >  文章  >  後端開發  >  ## 字串 s2 是字串 s1 的旋轉版本嗎?

## 字串 s2 是字串 s1 的旋轉版本嗎?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-10-25 07:12:29177瀏覽

## Is String s2 a Rotated Version of String s1?

面試問題:辨識字串旋轉

給定兩個字串s1 和s2,一位受訪者最近面臨一個問題,如何確定s1 是否為s2 的旋轉版本。旋轉版本是指一個字串,其中的字元已向左或向右移動一定數量的位置,從而產生一個包含相同字元但順序不同的新字串。

簡化解決方案

要解決這個問題,可以採用簡單而有效的方法。在繼續之前,必須驗證兩個字串 s1 和 s2 的長度是否相同。一旦確認了這一點,我們就可以將 s1 與其自身連接起來,形成一個更長的字串,記為 s1s1。

現在,解決方案的關鍵在於檢查 s2 是否是連接後的字串 s1s1 的子字串。如果s2確實是s1s1的子字串,則表示s2的字元可以在s1s1的連續段內找到。因此,s1 的旋轉(本質上是移動其字元)將產生保留 s2 作為子字串的新字串。

範例

考慮字串 s1 = “stackoverflow”和 s2 =“tackoverflows”。透過將 s1 與其自身連接,我們得到字串 s1s1 = "stackoverflowstackoverflow"。請注意,s2 是 s1s1 的子字串,表示 s1 和 s2 是彼此的旋轉版本。

這個簡化的解決方案利用了子字串搜尋演算法的強大功能,提供了一種確定字串旋轉的有效方法。透過避免過多的循環或操作,它提供了一種簡潔而優雅的方法來解決問題。

以上是## 字串 s2 是字串 s1 的旋轉版本嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn