首頁 > 後端開發 > php教程 > 在字串中添加空格

在字串中添加空格

Patricia Arquette
發布: 2024-12-22 20:23:11
原創
316 人瀏覽過

Adding Spaces to a String

2109。在字串中加入空格

難度:

主題:陣列、兩個指標、字串、模擬

給你一個 0 索引的字串 s 和一個 0 索引的整數數組 space ,它描述了原始字串中將添加空格的索引。每個空格都應插入在給定索引處的字元之前。

  • 例如,給定 s = "EnjoyYourCoffee" 和 space = [5, 9],我們在 'Y' 和 'C' 之前放置空格,它們分別位於索引 5 和 9 處。因此,我們獲得了“享受你的咖啡”。

回傳修改後的字串加入空格後

範例1:

  • 輸入: s = "LeetcodeHelpsMeLearn", 空格 = [8,13,15]
  • 輸出:「Leetcode 幫助我學習」
  • 說明:索引8、13和15對應於「LeetcodeHelpsMeLearn」中的下劃線字元。
    • 然後我們在這些字元之前放置空格。

範例2:

  • 輸入: s = "icodeinpython", 空格 = [1,5,7,9]
  • 輸出:「我在 py thon 編碼」
  • 解釋: 索引 1、5、7、9 對應於「icodeinpython」中帶下劃線的字元。
    • 然後我們在這些字元之前放置空格。

範例 3:

  • 輸入: s = "間距", 空格 = [0,1,2,3,4,5,6]
  • 輸出:“s p a c i n g”
  • 說明:我們也可以在字串的第一個字元之前放置空格。

約束:

  • 1 5
  • s 僅由小寫和大寫英文字母組成。
  • 1 5
  • 0
  • 所有空格的值都嚴格遞增

提示:

  1. 建立一個新字串(最初為空)作為修改後的字串。迭代原始字串並將原始字串的每個字元附加到新字串。但是,每次遇到需要在其前面留有空格的字元時,請在附加該字元之前附加一個空格。
  2. 由於空間位置的索引數組已排序,因此使用指標來追蹤下一個放置空間的索引。僅在附加空格後才會增加指標。
  3. 確保您的追加操作可以在 O(1) 內完成。

解:

我們可以使用兩個指標的有效方法。 PHP 5.6 中的實作如下所示:

解決方案說明:

  1. 使用指標 spaceIndex 來追蹤 space 陣列中的目前位置。
  2. 使用循環遍歷字串 s。
  3. 檢查字串中的目前索引是否與空格數組中的目前值相符。如果是,則在結果後面追加一個空格並將 spaceIndex 指標向前移動。
  4. 將字串的目前字元附加到結果中。
  5. 以單一字串的形式傳回最終結果。

這種方法確保我們利用空格數組的排序順序有效地處理輸入。

讓我們用 PHP 實作這個解:2109。在字串中加入空格

<?php
 /**
 * @param String $s
 * @param Integer[] $spaces
 * @return String
 */
function addSpaces($s, $spaces) {
    ...
    ...
    ...
    /**
     * go to ./solution.php
     */
}

// Example 1
$s1 = "LeetcodeHelpsMeLearn";
$spaces1 = [8, 13, 15];
echo addSpaces($s1, $spaces1) . "\n"; // Output: "Leetcode Helps Me Learn"

// Example 2
$s2 = "icodeinpython";
$spaces2 = [1, 5, 7, 9];
echo addSpaces($s2, $spaces2) . "\n"; // Output: "i code in py thon"

// Example 3
$s3 = "spacing";
$spaces3 = [0, 1, 2, 3, 4, 5, 6];
echo addSpaces($s3, $spaces3) . "\n"; // Output: " s p a c i n g"
?>
登入後複製

解釋:

  1. 高效追加: . PHP 中的運算子用於有效率地追加字串。
  2. 兩個指標: spaceIndex 指標確保我們只處理一次 space 陣列。
  3. 時間複雜度:
    • 迭代字串需要 O(n),其中 n 是字串的長度。
    • 檢查空格數組指針需要 O(m),其中 m 是空格數組的長度。
    • 組合:O(n·m),在給定限制的情況下這是最佳的。

此解決方案遵守約束條件,即使對於大量輸入也很有效。

聯絡連結

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

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

  • 領英
  • GitHub

以上是在字串中添加空格的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板