>백엔드 개발 >PHP 튜토리얼 >단어가 문장에서 단어의 접두사로 나타나는지 확인

단어가 문장에서 단어의 접두사로 나타나는지 확인

Patricia Arquette
Patricia Arquette원래의
2024-12-17 01:35:25234검색

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

1455. 단어가 문장에서 단어의 접두사로 나타나는지 확인

난이도: 쉬움

주제: 두 포인터, 문자열, 문자열 일치

단일 공백으로 구분된 단어와 searchWord로 구성된 문장이 있는 경우, searchWord가 문장 내 단어의 접두사인지 확인하세요.

searchWord가 이 단어의 접두사인 문장에서 단어의 인덱스를 반환합니다(1-indexed). searchWord가 두 개 이상의 단어로 구성된 접두사인 경우 첫 번째 단어의 색인(최소 색인)을 반환합니다. 해당 단어가 없으면 -1을 반환합니다.

문자열 s의 접두사는 s의 선행 연속 하위 문자열입니다.

예 1:

  • 입력: 문장 = "나는 버거 먹는 걸 좋아해요", searchWord = "burg"
  • 출력: 4
  • 설명: "burg"는 문장의 네 번째 단어인 "burger"의 접두사입니다.

예 2:

  • 입력: 문장 = "이 문제는 쉬운 문제입니다.", searchWord = "pro"
  • 출력: 2
  • 설명: "pro"는 문장의 2번째와 6번째 단어인 "problem"의 접두사이지만 최소 인덱스이므로 2를 반환합니다.

예 3:

  • 입력: 문장 = "피곤해요", searchWord = "당신"
  • 출력: -1
  • 설명: "you"는 문장에서 어떤 단어의 접두사가 아닙니다.

제약조건:

  • 1 <= 문장.길이 <= 100
  • 1 <= searchWord.length <= 10
  • 문장은 영문소문자와 공백으로 구성됩니다.
  • searchWord는 영문 소문자로 구성됩니다.

힌트:

  1. 먼저 문장의 단어를 추출해 보세요.
  2. searchWord가 인덱스 0에서 발생하면 각 단어를 확인하고, 그렇다면 이 단어의 인덱스(1-인덱스)를 반환합니다
  3. searchWord가 단어의 접두어로 존재하지 않는 경우 기본값(-1)을 반환합니다.

해결책:

작업을 다음 단계로 나눌 수 있습니다.

  1. 문장을 개별 단어로 나눕니다.
  2. 단어를 반복하면서 searchWord가 각 단어의 접두사인지 확인하세요.
  3. 단어가 searchWord로 시작하는 경우 해당 단어의 인덱스가 1인 위치를 반환합니다.
  4. 일치하는 단어가 없으면 -1을 반환합니다.

PHP에서 이 솔루션을 구현해 보겠습니다: 1455. 단어가 문장에서 단어의 접두사로 나타나는지 확인






설명:

  1. 문장을 단어로 나누기:

    폭발(" ", $sentence)를 사용하여 문장을 단어 배열로 분할합니다.

  2. 단어 반복:

    foreach 루프를 사용하여 문장의 각 단어를 반복합니다. $index 변수는 단어의 위치(인덱스 0)를 추적합니다.

  3. 접두사 확인:

    strpos($word, $searchWord) === 0을 사용하여 searchWord가 현재 단어의 시작 부분에 나타나는지 확인하세요.

  4. 결과 반환:

    일치하는 항목이 발견되면 $index에 1을 추가하여 단어의 1 기반 인덱스를 반환합니다. 루프 후에 일치하는 항목이 없으면 -1을 반환합니다.

예제 출력:

  • 입력 문장 = "i love eatingburger"이고 searchWord = "burg"인 경우 "burger"가 4번째 단어이므로 출력은 4입니다.
  • 입력 문장 = "이 문제는 쉬운 문제입니다"이고 searchWord = "pro"인 경우 "문제"가 두 번째 단어이므로 출력은 2입니다.
  • 입력 문장 = "나는 피곤해"이고 searchWord = "you"인 경우 "you"로 시작하는 단어가 없기 때문에 출력은 -1입니다.

시간 복잡도:

  • 문장을 단어로 나누려면 O(n)이 필요합니다. 여기서 n은 문장의 길이입니다.
  • 각 단어의 접두어를 확인하는 데는 O(m)이 소요됩니다. 여기서 m은 검색 단어의 길이입니다.
  • 따라서 전체 시간 복잡도는 O(n * m)이며, 이는 입력 크기 제약에 효율적입니다.

이 솔루션은 제약 조건을 충족하며 주어진 입력 크기에 효율적입니다.

연락처 링크

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

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

  • 링크드인
  • 깃허브

위 내용은 단어가 문장에서 단어의 접두사로 나타나는지 확인의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.