ホームページ > バックエンド開発 > PHPチュートリアル > 指定された接頭辞を持つ単語を数える

指定された接頭辞を持つ単語を数える

Susan Sarandon
リリース: 2025-01-09 18:03:42
オリジナル
611 人が閲覧しました
<code class="language-php"><?php
/**
 * @param String[] $words
 * @param String $pref
 * @return Integer
 */
function countWordsWithPrefix($words, $pref) {
    $count = 0;
    foreach ($words as $word) {
        if (strpos($word, $pref) === 0) {
            $count++;
        }
    }
    return $count;
}

// Example Usage
$words1 = ["pay", "attention", "practice", "attend"];
$pref1 = "at";
echo countWordsWithPrefix($words1, $pref1); // Output: 2

$words2 = ["leetcode", "win", "loops", "success"];
$pref2 = "code";
echo countWordsWithPrefix($words2, $pref2); // Output: 0
?></code>
ログイン後にコピー

Counting Words With a Given Prefix

  1. 指定された接頭辞を持つ単語を数える

難易度: 簡単

トピック: 配列、文字列、文字列マッチング

文字列 words と文字列 pref の配列を指定すると、プレフィックスとして words を含む pref 内の文字列の数を返します。

文字列 s の接頭辞は、s の先頭の連続する部分文字列です。

例 1:

  • 入力: words = ["支払い","注意","練習","出席"], pref = "at"
  • 出力: 2
  • 説明: プレフィックスとして「at」を含む 2 つの文字列は、「attention」と「attend」です。

例 2:

  • 入力: words = ["leetcode","win","loops","success"], pref = "code"
  • 出力: 0
  • 説明: プレフィックスとして「code」を含む文字列はありません。

制約:

  • 1
  • 1
  • 1
  • word[i] と pref は英小文字で構成されます。

改善された解決策 (strpos を使用):

提供されたソリューションは substr を使用しますが、この特定のタスクでは strpos よりも効率が低くなります。 strpos は文字列の先頭にあるプレフィックスを直接チェックし、不必要な部分文字列の作成を回避します。

この改良された PHP ソリューションは strpos を使用します:

<code class="language-php"><?php
function countWordsWithPrefix(array $words, string $pref): int {
    $count = 0;
    foreach ($words as $word) {
        if (strpos($word, $pref) === 0) { // Check if pref is at the beginning (index 0)
            $count++;
        }
    }
    return $count;
}
?></code>
ログイン後にコピー

時間計算量: 最悪の場合 O(n*m)。n はワード数、m はプレフィックスの長さです。 ただし、平均すると、元の substr ソリューションよりも高速になります。

スペースの複雑さ: O(1) - 一定の追加スペースが使用されます。

この改訂された回答は、より効率的なソリューションを提供し、説明の明確さを維持します。 画像は問題文に関連しているため、変更されません。

以上が指定された接頭辞を持つ単語を数えるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート