>  기사  >  백엔드 개발  >  바이너리 문자열의 시작 부분에서 문자를 제거하는 마지막 플레이어를 찾습니다.

바이너리 문자열의 시작 부분에서 문자를 제거하는 마지막 플레이어를 찾습니다.

王林
王林앞으로
2023-08-27 21:17:06516검색

바이너리 문자열의 시작 부분에서 문자를 제거하는 마지막 플레이어를 찾습니다.

C++에서 이진 문자열을 처리할 때 특정 작업을 수행하는 특정 패턴이나 플레이어를 식별해야 하는 경우가 많습니다. 일반적인 작업은 이진 문자열의 시작 부분에서 문자를 제거하는 마지막 플레이어를 찾는 것입니다. 이 기사에서는 이 문제를 해결하는 알고리즘에 대해 논의하고 C++ 예제 구현을 제공합니다.

문제 설명

이진 문자열 s와 두 명의 플레이어 A와 B가 주어지면 플레이어는 차례로 문자열 시작 부분의 문자를 제거합니다. 마지막 문자를 제거한 플레이어가 승리합니다. 두 플레이어 모두 최선을 다해 플레이하면 어느 플레이어가 게임에서 승리할지 결정됩니다.

알고리즘

이 문제를 해결하기 위해 간단한 관찰을 사용할 수 있습니다. 홀수인 1로 게임을 시작하는 플레이어는 항상 승리하고, 짝수인 1로 게임을 시작하는 플레이어는 항상 패배합니다.

이진 문자열 s에서 1의 개수를 세어 어떤 플레이어가 게임을 시작했는지 확인할 수 있습니다. 1의 수가 홀수이면 플레이어 A가 게임을 시작하고 승리합니다. 1의 수가 짝수이면 플레이어 B가 게임을 시작하고 패배합니다.

이것은 C++에서 알고리즘을 구현한 것입니다 -

으아아아

출력

으아아아

이 구현에서는 루프를 사용하여 이진 문자열 s에서 1의 개수를 계산합니다. 카운터 countOnes를 0으로 초기화하고 "1"과 같은 각 문자에 대해 이를 증가시킵니다. 그런 다음 countOnes가 홀수인지 짝수인지 확인하고 승리한 플레이어의 이름을 반환합니다.

테스트 케이스

예를 들어 이 기능을 테스트해 보겠습니다. 다음과 같은 바이너리 문자열이 있다고 가정합니다 -

으아아아

s를 매개변수로 사용하여 findLastPlayer() 함수를 호출할 수 있습니다:

으아아아

문자열 s의 1의 수가 짝수이고 플레이어 B가 게임을 시작하면 패배하므로 이 함수는 "플레이어 B"를 반환합니다. 홀수 개의 1이 포함된 이진 문자열이 있는 경우 플레이어 A가 게임을 시작하고 승리하므로 함수는 "플레이어 A"를 반환합니다.

결론

요약하자면, 우리는 C++에서 바이너리 문자열의 시작 부분에서 마지막으로 문자를 삭제한 플레이어를 찾는 문제를 해결하기 위한 알고리즘을 제안했습니다. 문자열에 있는 1의 수를 세어 보면 어떤 플레이어가 게임을 시작했고 누가 이길지 결정할 수 있습니다. 또한 사용법을 보여주기 위한 테스트 사례와 함께 알고리즘의 C++ 예제 구현도 제공합니다. 이 문서에 설명된 단계를 수행하면 이제 C++ 프로그램의 이진 문자열에서 문자를 제거하는 마지막 플레이어를 결정할 수 있습니다.

위 내용은 바이너리 문자열의 시작 부분에서 문자를 제거하는 마지막 플레이어를 찾습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제