Rumah >pembangunan bahagian belakang >tutorial php >Mengira Perkataan Dengan Awalan Diberi

Mengira Perkataan Dengan Awalan Diberi

Susan Sarandon
Susan Sarandonasal
2025-01-09 18:03:42611semak imbas
<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. Mengira Perkataan Dengan Awalan Diberi

Kesukaran: Mudah

Topik: Tatasusunan, Rentetan, Padanan Rentetan

Diberi tatasusunan rentetan words dan rentetan pref, kembalikan bilangan rentetan dalam words yang mengandungi pref sebagai awalan.

Awalan rentetan s ialah sebarang subrentetan bersebelahan terkemuka s.

Contoh 1:

  • Input: words = ["bayar","perhatian","latihan","hadir"], pref = "di"
  • Output: 2
  • Penjelasan: 2 rentetan yang mengandungi "at" sebagai awalan ialah: "attention" dan "attend".

Contoh 2:

  • Input: words = ["leetcode","win","loops","success"], pref = "code"
  • Output: 0
  • Penjelasan: Tiada rentetan yang mengandungi "kod" sebagai awalan.

Kekangan:

  • 1 <= perkataan.panjang <= 100
  • 1 <= perkataan[i].panjang <= 20
  • 1 <= pref.length <= 20
  • perkataan[i] dan pref terdiri daripada huruf kecil Inggeris.

Penyelesaian yang Diperbaiki (menggunakan strpos):

Penyelesaian yang disediakan menggunakan substr yang kurang cekap daripada strpos untuk tugas khusus ini. strpos terus menyemak awalan pada permulaan rentetan, mengelakkan penciptaan subrentetan yang tidak perlu.

Penyelesaian PHP yang dipertingkat ini menggunakan strpos:

<?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;
}
?>
<p><strong>Kerumitan Masa:</strong> O(n*m) dalam kes paling teruk, dengan n ialah bilangan perkataan dan m ialah panjang awalan.  Walau bagaimanapun, secara purata, ia akan lebih cepat daripada penyelesaian <code>substr asal.

Kerumitan Ruang: O(1) - Ruang tambahan berterusan digunakan.

Jawapan yang disemak ini memberikan penyelesaian yang lebih cekap dan mengekalkan kejelasan penjelasan. Imej kekal tidak berubah kerana ia berkaitan dengan pernyataan masalah.

Atas ialah kandungan terperinci Mengira Perkataan Dengan Awalan Diberi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn