<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>
난이도: 쉬움
주제: 배열, 문자열, 문자열 일치
문자열 배열 words
과 문자열 pref
이 주어지면 words
에서 접두사로 pref
이 포함된 문자열 수를 반환합니다.
문자열의 접두사 s
는 s
의 선행 연속 하위 문자열입니다.
예 1:
words
= ["지불","주의","연습","참석"], pref
= "at"예 2:
words
= ["leetcode","win","loops","success"], pref
= "코드"제약조건:
향상된 솔루션(strpos 사용):
제공된 솔루션은 이 특정 작업에 대해 substr
보다 효율성이 떨어지는 strpos
을 사용합니다. strpos
문자열 시작 부분의 접두사를 직접 확인하여 불필요한 하위 문자열 생성을 방지합니다.
이 향상된 PHP 솔루션은 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>시간 복잡도:</strong> 최악의 경우 O(n*m)입니다. 여기서 n은 단어 수이고 m은 접두사의 길이입니다. 그러나 평균적으로 원래 <code>substr
솔루션보다 빠릅니다.공간 복잡도: O(1) - 일정한 추가 공간이 사용됩니다.
이 수정된 답변은 보다 효율적인 솔루션을 제공하고 설명의 명확성을 유지합니다. 문제 설명과 관련이 있으므로 이미지는 변경되지 않은 상태로 유지됩니다.
위 내용은 주어진 접두어로 단어 세기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!