문자열과 정수 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!