首頁  >  文章  >  後端開發  >  。旋轉字串

。旋轉字串

Linda Hamilton
Linda Hamilton原創
2024-11-04 12:37:02345瀏覽

. Rotate String

796。旋轉字串

難度:簡單

主題: 字串、字串符合

給定兩個字串 s 和目標,當且僅當 s 在 s 上經過一定次數的 轉變 後可以成為目標時,回傳 true。

s 上的 shift 包含將 s 最左邊的字元移到最右邊的位置。

  • 例如,如果 s = "abcde",則一班後將為 "bcdea"。

範例1:

  • 輸入: s = "abcde", goal = "cdeab"
  • 輸出: true

範例2:

  • 輸入: s = "abcde", goal = "abced"
  • 輸出: false

約束:

  • 1
  • s和goal由小寫英文字母組成。

解:

我們可以利用字串連接的特性。具體來說,如果我們將字串 s 與其自身連接(即 s s),則 s 的所有可能旋轉都會顯示為該連接字串中的子字串。這使我們可以簡單地檢查 goal 是否是 s 的子字串。

讓我們用 PHP 實作這個解:796。旋轉字串

<?php
/**
 * @param String $s
 * @param String $goal
 * @return Boolean
 */
function rotateString($s, $goal) {
    ...
    ...
    ...
    /**
     * go to ./solution.php
     */
?>

解釋:

  1. 長度檢查:我們先檢查 s 和 goal 的長度是否相同。如果不是,我們立即回傳 false,因為 s 不可能轉換為目標。

  2. 串聯:我們將字串 s 與其自身連接起來以建立 doubleS。

  3. 子字串檢查:我們使用 strpos() 函數來檢查 goal 是否作為 doubleS 中的子字串存在。如果是,我們回傳 true;否則,我們回傳 false。

複雜:

  • 時間複雜度:O(n),其中n是字串的長度,由於串聯和子字串搜尋。
  • 空間複雜度:連接字串的 O(n)。

該解決方案有效地確定一個字串是否可以透過旋轉變成另一個字串。

聯絡連結

如果您發現本系列有幫助,請考慮在 GitHub 上給 存儲庫 一個星號或在您最喜歡的社交網絡上分享該帖子? 。您的支持對我來說意義重大!

如果您想要更多類似的有用內容,請隨時關注我:

  • 領英
  • GitHub

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

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