首頁 >後端開發 >php教程 >刪除字元以製作精美的字串

刪除字元以製作精美的字串

DDD
DDD原創
2024-11-02 18:37:31204瀏覽

Delete Characters to Make Fancy String

1957 年。刪除字元來製作花俏的字串

難度:簡單

主題:字串

花俏字串是一個三個連續字元不相等的字串。

給定一個字串 s,從 s 中刪除最小個可能的字元數,使其變得花俏

傳回刪除後的最終字串。可以證明答案總是唯一.

範例1:

  • 輸入: s = "leeetcode"
  • 輸出:「leetcode」
  • 說明: 從第一組“e”中刪除一個“e”以建立“leetcode”。 三個連續字元都不相等,因此傳回“leetcode”。

範例2:

  • 輸入: s = "aaabaaaa"
  • 輸出:「aabaa」
  • 說明: 從第一組“a”中刪除一個“a”以建立“aabaaaa”。 從第二組“a”中刪除兩個“a”以建立“aabaa”。 三個連續字元都不相等,因此返回“aabaa”。

範例 3:

  • 輸入: s = "aab"
  • 輸出:「aab」
  • 解釋: 三個連續字元都不相等,因此傳回「aab」。

約束:

  • 1 5
  • s 僅由小寫英文字母組成。

提示:

  1. 如果三個或更多連續字元相等,刪除字元的最佳方法是什麼?
  2. 如果三個或更多連續字元相等,則保留其中兩個並刪除其餘的。

解:

我們需要確保最終字串中沒有三個連續字元相同。我們將迭代輸入字串並透過追蹤前兩個字元來建立一個新的“奇特”字串。如果第三個連續字元與最後兩個字元匹配,我們將跳過它。否則,我們將其添加到輸出中。

讓我們用 PHP 實作這個解:1957。刪除字元製作花式字串

解釋:

  1. 初始化變數:

    • $result:這將儲存最終的「奇特」字串。
  2. 迭代字串:

    • 對於每個字符,檢查它是否與結果中的最後兩個字符形成一個三重奏。
    • 如果是,請跳過將其新增至 $result。
    • 如果沒有,請將其加入 $result。
  3. 回傳結果:

    • $result 字串現在不包含三個連續的相同字元。

複雜性分析

  • 時間複雜度O(n),其中n是輸入字串的長度,因為我們每個字元處理一次。
  • 空間複雜度O(n),用於儲存輸出字串。

此方案有效率地滿足約束條件,並確保最終字串不存在三個連續相同的字元。

聯絡連結

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

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

  • 領英
  • GitHub

以上是刪除字元以製作精美的字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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