>  기사  >  백엔드 개발  >  . 문자열 회전

. 문자열 회전

Linda Hamilton
Linda Hamilton원래의
2024-11-04 12:37:02344검색

. Rotate String

796. 문자열 회전

난이도: 쉬움

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

두 개의 문자열 s와 goal이 주어지면 true를 반환하고 sshift가 s에서 몇 번 반복된 후에 s가 goal이 될 수 있는 경우에만

s의 shift는 s의 가장 왼쪽 문자를 가장 오른쪽 위치로 이동하는 작업으로 구성됩니다.

  • 예를 들어 s = "abcde"인 경우 한 교대 후에는 "bcdea"가 됩니다.

예 1:

  • 입력: s = "abcde", 목표 = "cdeab"
  • 출력: true

예 2:

  • 입력: s = "abcde", goal = "abced"
  • 출력: false

제약조건:

  • 1
  • s와 goal은 영문소문자로 구성됩니다.

해결책:

문자열 연결의 속성을 활용할 수 있습니다. 특히, 문자열 s를 자신과 연결하면(즉, s s), s의 가능한 모든 회전은 연결된 문자열 내의 하위 문자열로 나타납니다. 이를 통해 goal이 s의 하위 문자열인지 간단히 확인할 수 있습니다.

이 솔루션을 PHP로 구현해 보겠습니다. 796. 문자열 회전

<?php
/**
 * @param String $s
 * @param String $goal
 * @return Boolean
 */
function rotateString($s, $goal) {
    ...
    ...
    ...
    /**
     * go to ./solution.php
     */
?>

설명:

  1. 길이 확인: 먼저 s와 goal의 길이가 같은지 확인합니다. 그렇지 않으면 s를 goal로 변환하는 것이 불가능하므로 즉시 false를 반환합니다.

  2. 연결: 문자열 s를 자신과 연결하여 doubleS를 만듭니다.

  3. 하위 문자열 검사: strpos() 함수를 사용하여 목표가 doubleS의 하위 문자열로 존재하는지 확인합니다. 그렇다면 true를 반환합니다. 그렇지 않으면 false를 반환합니다.

복잡성:

  • 시간 복잡도: O(n), 여기서 n은 연결 및 하위 문자열 검색으로 인해 문자열의 길이입니다.
  • 공간 복잡도: 연결된 문자열의 경우 O(n)

이 솔루션은 회전을 통해 한 문자열이 다른 문자열이 될 수 있는지 효율적으로 결정합니다.

연락처 링크

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

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

  • 링크드인
  • 깃허브

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

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