> 백엔드 개발 > C++ > 본문

C++로 구현된 지정된 이진 문자열 하위 문자열에서 제거할 수 있는 소수 문자 수를 최대화합니다.

WBOY
풀어 주다: 2023-08-31 09:33:09
앞으로
1070명이 탐색했습니다.

C++로 구현된 지정된 이진 문자열 하위 문자열에서 제거할 수 있는 소수 문자 수를 최대화합니다.

현재 작업에는 '0' 또는 '1'로 완전히 구성된 섹션 내에서 소수 문자가 포함된 항목을 삭제할 수 있는 수를 최대화하는 것이 최종 목표입니다. 주어진 모든 규칙과 제약 조건을 존중하면서도 말이죠.

구문

다가오는 코드에 대한 포괄적인 이해를 보장하기 위해 알고리즘과 전략을 탐색하기 전에 먼저 사용될 메서드의 구문을 숙지합시다 −

으아악

알고리즘

주어진 이진 문자열 하위 문자열에서 소수의 문자 제거를 최대화하는 알고리즘은 다음 단계로 설명할 수 있습니다.

  • 먼저 삭제라는 변수를 0으로 초기화하는 것부터 시작해 보겠습니다. 이 변수의 주요 목적은 발생하는 삭제 작업 수를 모니터링하는 것입니다.

  • 이진 문자열의 특정 하위 문자열에서 숫자 '0'과 '1'이 얼마나 자주 나타나는지 확인합니다. 이러한 숫자가 나타날 때마다 별도로 계산할 수 있습니다.

  • 소수 문자를 정확히 찾아내려면 이전 단계에서 얻은 개수를 참조해야 합니다.

  • 부분 문자열에서 발생 빈도가 낮은 모든 문자를 제거하고 그에 따라 삭제 횟수를 업데이트하세요.

  • 삭제된 최종값을 결과로 반환

방법 1: 순회 방법

우리 접근 방식의 실행에는 선형 방식으로 이진 문자열 하위 문자열을 탐색한 다음 소수 문자를 한 번에 삭제하는 작업이 포함됩니다.

Example

의 중국어 번역은

Example

입니다. 으아악

출력

으아악

설명

방법 1에서는 선형 순회를 활용하여 주어진 이진 문자열 하위 문자열에서 제거되는 몇 개의 문자 수를 최대화합니다. 지정된 하위 문자열을 반복함으로써 해당 섹션 내의 각 인스턴스에 대해 '0'과 '1'의 발생 횟수를 확인할 수 있습니다. 해당 지역이나 그룹 내에서 빈도가 낮은 문자를 식별한 후(예: "소수" 찾기) 지정된 지역 내의 모든 문자 수에서 해당 문자 수를 빼서 가능한 삭제 수를 계산할 수 있습니다.

이는 초기 문자열에 대해 단일 패스만 필요로 하는 간단하지만 실용적인 솔루션을 보여주는 효율적인 방법으로 이어지며, 이는 이 방법을 더 짧은 입력 문자열에 특히 적합하게 만듭니다.

방법 2: 슬라이딩 윈도우

슬라이딩 윈도우 기술은 이 문제를 해결하기 위한 또 다른 효율적인 접근 방식입니다. 고정된 크기의 윈도우를 사용하여 이진 문자열의 하위 문자열을 탐색하는 것입니다.

Example

의 중국어 번역은

Example

입니다. 으아악

출력

으아악

설명

방법 2는 슬라이딩 윈도우 기술을 활용하여 소수의 문자 삭제를 극대화하는 것입니다. 고정 크기 창을 사용하여 하위 문자열을 반복하여 창이 이동함에 따라 '0'과 '1'의 개수를 업데이트합니다. 개수에 따라 창 경계를 조정하여 소수의 문자를 식별하고 가능한 최대 삭제 수를 계산합니다. 이 접근 방식은 창을 효율적으로 슬라이딩하여 중복 계산 수를 줄여 더 큰 입력에 더 적합하게 만들고 더 빠른 솔루션을 제공합니다.

결론

이 기사에서는 주어진 이진 문자열 하위 문자열에서 소수의 문자 제거를 최대화하는 방법에 대한 문제를 탐구합니다. 우리는 선형 순회와 슬라이딩 윈도우 기술이라는 두 가지 접근 방식을 논의했습니다. 두 방법 모두 원하는 결과를 달성하기 위한 효율적인 솔루션을 제공합니다. 알고리즘을 이해하고 제공된 실행 가능한 코드 예제를 연구함으로써 이러한 개념을 적용하여 자신의 프로젝트에서 유사한 문제를 해결할 수 있습니다. 문제를 분석하고 가장 적절한 접근 방식을 선택하고 그에 따라 구현하는 것을 잊지 마십시오.

위 내용은 C++로 구현된 지정된 이진 문자열 하위 문자열에서 제거할 수 있는 소수 문자 수를 최대화합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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