> 백엔드 개발 > PHP 튜토리얼 > 배열의 문자열 일치

배열의 문자열 일치

Susan Sarandon
풀어 주다: 2025-01-08 06:24:46
원래의
628명이 탐색했습니다.

String Matching in an Array

1408. 배열의 문자열 일치

난이도: 쉬움

주제: 배열, 문자열, 문자열 일치

문자열 단어 배열이 주어지면 다른 단어의 하위 문자열인 단어의 모든 문자열을 반환합니다. 어떤 순서로든 답변을 돌려주실 수 있습니다.

하위 문자열은 문자열 내의 연속된 문자 시퀀스입니다

예 1:

  • 입력: 단어 = ["mass","as","hero","superhero"]
  • 출력: ["as","hero"]
  • 설명: "as"는 "mass"의 하위 문자열이고 "hero"는 "superhero"의 하위 문자열입니다. ["hero","as"]도 유효한 답변입니다.

예 2:

  • 입력: 단어 = ["leetcode","et","code"]
  • 출력: ["et","code"]
  • 설명: "et", "code"는 "leetcode"의 하위 문자열입니다.

예 3:

  • 입력: 단어 = ["파란색","녹색","부"]
  • 출력: []
  • 설명: 어떤 단어 문자열도 다른 문자열의 하위 문자열이 아닙니다.

제약조건:

  • 1 <= 단어.길이 <= 100
  • 1 <= 단어[i].length <= 30
  • word[i]에는 영문 소문자만 포함됩니다.
  • 모든 단어 문자열은 고유합니다.

힌트:

  1. 무차별 대입을 통해 한 문자열이 다른 문자열의 하위 문자열인지 확인하거나 KMP 알고리즘을 사용합니다.

해결책:

배열에 있는 다른 단어의 하위 문자열인 단어 배열에서 모든 문자열을 찾아야 하며, 무차별 접근 방식을 사용할 수 있습니다. 이 접근 방식에는 목록의 각 문자열을 확인하고 해당 문자열이 다른 문자열의 하위 문자열인지 확인하는 작업이 포함됩니다.

PHP에서 이 솔루션을 구현해 보겠습니다. 1408. 배열의 문자열 일치

<?php
/**
 * @param String[] $words
 * @return String[]
 */
function stringMatching($words) {
    ...
    ...
    ...
    /**
     * go to ./solution.php
     */
}

// Example 1
$words = ["mass", "as", "hero", "superhero"];
print_r(stringMatching($words));

// Example 2
$words = ["leetcode", "et", "code"];
print_r(stringMatching($words));

// Example 3
$words = ["blue", "green", "bu"];
print_r(stringMatching($words));
?>




<h3>
  
  
  설명:
</h3>

<ol>
<li>stringMatching 함수는 입력 배열의 모든 단어를 반복합니다.</li>
<li>각 단어에 대해 중첩 루프를 사용하여 배열의 다른 모든 단어와 비교합니다.</li>
<li>PHP의 strpos() 함수를 사용하여 한 문자열이 다른 문자열의 하위 문자열인지 확인합니다. strpos() 함수는 하위 문자열을 찾을 수 없으면 false를 반환합니다.</li>
<li>하위 문자열이 발견되면 단어를 한 번만 기록하면 되므로 결과 배열에 단어를 추가하고 내부 루프에서 벗어납니다.</li>
<li>마지막으로 이 함수는 모든 하위 문자열이 포함된 결과 배열을 반환합니다.</li>
</ol>

<h3>
  
  
  시간 복잡도:
</h3>

<ul>
<li>시간 복잡도는 <em><strong>O(n<sup>2</sup> x m)</strong></em>입니다. 여기서 <em><strong>n</strong></em>은 단어이며 <em><strong>m</strong></em>은 a의 최대 길이입니다. 단어. 이는 다른 모든 단어 내의 각 단어에 대해 하위 문자열 검색을 수행하기 때문입니다.</li>
</ul>

<h3>
  
  
  예제 출력:
</h3>

<p>입력 ["mass", "as", "hero", "superhero"]의 경우 출력은 다음과 같습니다.<br>
</p>

<pre class="brush:php;toolbar:false">Array
(
    [0] => as
    [1] => hero
)
로그인 후 복사

["leetcode", "et", "code"]를 입력하면 출력은 다음과 같습니다.

Array
(
    [0] => et
    [1] => code
)
로그인 후 복사

입력 ["blue", "green", "bu"]의 경우 출력은 다음과 같습니다.

Array
(
)
로그인 후 복사

이 솔루션은 주어진 문제 제약 조건에 적합합니다.

연락처 링크

이 시리즈가 도움이 되었다면 GitHub에서 저장소에 별표를 표시하거나 즐겨찾는 소셜 네트워크에서 게시물을 공유해 보세요. 여러분의 지원은 저에게 큰 의미가 될 것입니다!

이렇게 더 유용한 콘텐츠를 원하시면 저를 팔로우해주세요.

  • 링크드인
  • 깃허브

위 내용은 배열의 문자열 일치의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿