> 백엔드 개발 > PHP 튜토리얼 > 멋진 문자열을 만들기 위해 문자 삭제

멋진 문자열을 만들기 위해 문자 삭제

DDD
풀어 주다: 2024-11-02 18:37:31
원래의
197명이 탐색했습니다.

Delete Characters to Make Fancy String

1957년. 멋진 문자열을 만들기 위해 문자 삭제

난이도: 쉬움

주제: 문자열

멋진 문자열3개의 연속 문자가 동일하지 않은 문자열입니다.

문자열 s가 주어지면 s에서 가능한 최소 문자 수를 삭제하여 멋지게 만듭니다.

삭제 후 마지막 문자열을 반환합니다. 대답은 항상 고유하다는 것을 알 수 있습니다.

예 1:

  • 입력: s = "leeetcode"
  • 출력: "leetcode"
  • 설명: "leetcode"를 생성하려면 'e'의 첫 번째 그룹에서 'e'를 제거하세요. 연속된 세 문자가 동일하지 않으므로 "leetcode"를 반환합니다.

예 2:

  • 입력: s = "aaabaaaa"
  • 출력: "aabaa"
  • 설명: 'aabaaaa'를 생성하려면 'a'의 첫 번째 그룹에서 'a'를 제거하세요. 두 번째 'a' 그룹에서 두 개의 'a'를 제거하여 "aabaa"를 만듭니다. 연속된 세 문자가 동일하지 않으므로 "aabaa"를 반환합니다.

예 3:

  • 입력: s = "aab"
  • 출력: "aab"
  • 설명: 연속된 세 문자가 동일하지 않으므로 "aab"를 반환합니다.

제약조건:

  • 1 5
  • s는 영문 소문자로만 구성됩니다.

힌트:

  1. 3개 이상의 연속된 문자가 동일한 경우 문자를 삭제하는 최적의 방법은 무엇입니까?
  2. 3개 이상의 연속된 문자가 같을 경우, 2개는 유지하고 나머지는 삭제하세요.

해결책:

최종 문자열에서 연속된 세 문자가 동일하지 않은지 확인해야 합니다. 입력 문자열을 반복하고 이전 두 문자를 추적하여 새로운 "멋진" 문자열을 만듭니다. 세 번째 연속 문자가 마지막 두 문자와 일치하면 건너뜁니다. 그렇지 않으면 출력에 추가합니다.

이 솔루션을 PHP로 구현해 보겠습니다: 1957. 멋진 문자열을 만들기 위해 문자를 삭제하세요

<?php
/**
 * @param String $s
 * @return String
 */
function makeFancyString($s) {
    ...
    ...
    ...
    /**
     * go to ./solution.php
     */
}

// Example usage:
echo makeFancyString("leeetcode"); // Output: "leetcode"
echo "\n";
echo makeFancyString("aaabaaaa");  // Output: "aabaa"
echo "\n";
echo makeFancyString("aab");       // Output: "aab"
?>
로그인 후 복사

설명:

  1. 변수 초기화:

    • $result: 최종 "fancy" 문자열이 저장됩니다.
  2. 문자열 반복:

    • 각 문자에 대해 결과의 마지막 두 문자와 트리오를 형성하는지 확인하세요.
    • 그렇다면 $result에 추가하는 것을 건너뛰세요.
    • 그렇지 않다면 $result에 추가하세요.
  3. 결과 반환:

    • 이제 $result 문자열에는 세 개의 연속된 동일한 문자가 포함되지 않습니다.

복잡성 분석

  • 시간 복잡도: O(n), 여기서 n은 입력 문자열의 길이입니다. 각 문자를 한 번씩 처리합니다.
  • 공간 복잡도: O(n), 출력 문자열 저장용.

이 솔루션은 제약 조건을 효율적으로 충족하고 최종 문자열에 세 개의 연속된 동일한 문자가 없도록 보장합니다.

연락처 링크

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

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

  • 링크드인
  • 깃허브

위 내용은 멋진 문자열을 만들기 위해 문자 삭제의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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