>백엔드 개발 >C++ >C++ 프로그램: 주어진 문자열을 재배열하여 K개의 반복 문자열을 형성합니다.

C++ 프로그램: 주어진 문자열을 재배열하여 K개의 반복 문자열을 형성합니다.

王林
王林앞으로
2023-08-25 17:45:12976검색

C++ 프로그램: 주어진 문자열을 재배열하여 K개의 반복 문자열을 형성합니다.

문자열과 정수 k가 주어지면 k개의 유사한 하위 문자열이 연결되도록 문자열의 문자 순서를 변경해야 합니다. 이것이 가능하지 않으면 출력은 "Impossible"입니다.

으아악

예(지도 사용)

문자열 "mottom"과 K=2를 가정해 보겠습니다. 주어진 문자열은 tomtom, motmot omtomt 등과 같은 2개의 하위 문자열을 연결하여 나타낼 수 있습니다. 3개의 하위 문자열 모두와 마찬가지로 k = 2이면 두 하위 문자열이 연결됩니다.

문자열을 사용하여 각 문자의 발생 횟수를 확인할 수 있습니다. 그 후, 사용 가능한 모든 주파수가 k로 나누어지면 가능하며 가능한 모든 답을 출력할 수 있습니다. 그렇지 않으면 불가능합니다.

위 예제의 C++ 구현은 다음과 같습니다. -

으아악

출력

으아악

예(지도 없음)

매핑을 사용하지 않고 동일한 예제의 C++ 구현은 다음과 같습니다. -

으아악

출력

으아악

결론

map 또는 unordered_map을 사용하여 문자를 빈도로 해시할 수 있습니다. [26] 배열을 사용하여 라틴어 소문자를 나타내고 모든 빈도를 0으로 설정할 수 있습니다. 이것은 구현 기반 질문이며 unordered_map 또는 hashmap을 사용하여 O(n)의 시간 복잡도를 갖습니다.

위 내용은 C++ 프로그램: 주어진 문자열을 재배열하여 K개의 반복 문자열을 형성합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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