首頁 >後端開發 >php教程 >檢查某個單字是否以句子中任何單字的前綴出現

檢查某個單字是否以句子中任何單字的前綴出現

Patricia Arquette
Patricia Arquette原創
2024-12-17 01:35:25233瀏覽

Check If a Word Occurs As a Prefix of Any Word in a Sentence

1455。檢查某個單字是否以句子中任何單字的前綴出現

難度:簡單

主題: 兩個指標、字串、字串符合

給定一個由一些由 單一空格分隔的單字和一個 searchWord 組成的句子,檢查 searchWord 是否是句子中任何單字的前綴。

傳回句子中單字的索引 (1-indexed),其中 searchWord 是該單字的前綴。如果 searchWord 是多個單字的前綴,則傳回第一個單字的索引(最小索引)。如果沒有這個字回傳-1。

字串 s 的 前綴 是 s 的任何前導連續子字串。

範例1:

  • 輸入:句子=“我喜歡吃漢堡”,searchWord =“burg”
  • 輸出: 4
  • 解釋:「burg」是「burger」的前綴,是句子中的第四個單字。

範例2:

  • 輸入:句子=“這個問題是一個簡單的問題”,searchWord =“pro”
  • 輸出: 2
  • 解釋:「pro」是「problem」的前綴,是句子中的第二個和第六個單詞,但我們返回 2,因為它是最小索引。

範例 3:

  • 輸入:句子=“我累了”,searchWord=“你”
  • 輸出: -1
  • 解釋:「你」不是句子中任何單字的前綴。

約束:

  • 1
  • 1
  • 句子由小寫英文字母和空格組成。
  • searchWord由小寫英文字母組成。

提示:

  1. 先提取句子中的單字。
  2. 檢查每個單字是否 searchWord 出現在索引 0 處,如果是,則傳回該單字的索引(1-索引)
  3. 如果 searchWord 不存在作為任何單字的前綴,則傳回預設值 (-1)。

解:

我們可以將任務分解為以下步驟:

  1. 將句子拆分成單字。
  2. 迭代單字並檢查 searchWord 是否是每個單字的前綴。
  3. 如果單字以 searchWord 開頭,則傳回該單字的 1 索引位置。
  4. 如果沒有單字匹配,則返回-1。

讓我們用 PHP 實作這個解:1455。檢查某個單字是否以句子中任何單字的前綴出現

<?php
/**
 * @param String $sentence
 * @param String $searchWord
 * @return Integer
 */
function isPrefixOfWord($sentence, $searchWord) {
    ...
    ...
    ...
    /**
     * go to ./solution.php
     */
}

// Example Usage:
echo isPrefixOfWord("i love eating burger", "burg");  // Output: 4
echo isPrefixOfWord("this problem is an easy problem", "pro");  // Output: 2
echo isPrefixOfWord("i am tired", "you");  // Output: -1
?>

解釋:

  1. 將句子拆分為單字:

    我們使用explode(" ", $sentence) 將句子拆分為單字數組。

  2. 迭代字:

    使用 foreach 迴圈迭代句子中的每個單字。 $index 變數追蹤單字的位置(從 0 開始索引)。

  3. 檢查前綴:

    使用 strpos($word, $searchWord) === 0 檢查 searchWord 是否出現在目前單字的開頭。

  4. 回傳結果:

    如果找到匹配項,則透過將 1 新增至 $index 來傳回該單字從 1 開始的索引。如果循環後沒有找到匹配項,則傳回-1。

範例輸出:

  • 對於輸入句子=“我喜歡吃漢堡”和searchWord =“burg”,輸出為4,因為“burger”是第4個單字。
  • 對於輸入句子 =“this Problem is an easy Problem”和 searchWord =“pro”,輸出為 2,因為“problem”是第二個字。
  • 對於輸入句子=“我累了”和searchWord=“you”,輸出為-1,因為沒有單字以“you”開頭。

時間複雜度:

  • 將句子分割成單字需要 O(n),其中 n 是句子的長度。
  • 檢查每個單字的前綴需要 O(m),其中 m 是搜尋單字的長度。
  • 因此,整體時間複雜度為 O(n * m),這對於輸入大小限制是有效的。

此解決方案滿足約束條件,並且對於給定的輸入大小是有效的。

聯絡連結

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

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

  • 領英
  • GitHub

以上是檢查某個單字是否以句子中任何單字的前綴出現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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