이 문제에서는 문자열이 입력으로 주어지며 문자열에 나타나는 단어를 사전순으로 정렬해야 합니다. 이를 위해 문자열의 각 단어에 1부터 시작하는 인덱스(공백으로 구분)를 할당하고 출력을 정렬된 인덱스로 얻습니다.
으아아아입력 문자열의 단어가 사전순으로 정렬되었으므로 출력은 "1 2"로 인쇄됩니다.
몇 가지 입력/결과 시나리오를 살펴보겠습니다. -
입력 문자열의 모든 단어가 동일하다고 가정하고 결과를 살펴보겠습니다 -
으아아아얻어진 결과는 단어의 마지막 위치가 됩니다.
이제 동일한 문자로 시작하는 단어가 포함된 입력 문자열을 고려해 보겠습니다. 결과 출력은 시작 문자의 후속 문자를 기반으로 합니다.
으아아아이 방법에 대한 또 다른 일반적인 입력 시나리오와 얻은 결과는 다음과 같습니다. -
으아아아Note - 반환된 위치는 입력 문자열에서 해당 단어의 원래 위치입니다. 메서드 내에서 단어가 정렬되면 이 숫자는 변경되지 않습니다.
이 방법은 벡터 및 지도 추상 데이터 유형을 사용하여 수행됩니다.
자동 반복기를 사용하여 문자열 범위 내에서 입력 문자열을 탐색합니다.
단어를 알파벳순으로 바꾸는 것은 이러한 요소를 벡터 데이터 유형의 뒤쪽으로 밀어서 수행됩니다.
단어가 사전순으로 재배열되면 문자열에서 해당 단어의 원래 위치가 출력으로 반환됩니다.
["articles", "point", "world"]라는 문자열이 있고 문자열의 순서는 -
입니다. 으아아아각 문자열을 인덱스로 매핑할 수 있습니다. 그런 다음 문자열을 정렬하고 지도의 색인을 인쇄할 수 있습니다. C++의 정렬된 데이터 구조인 맵을 사용하여 키-값 쌍을 저장할 수 있습니다. 우리의 접근 방식을 빠르게 구현해 보겠습니다.
으아아아이제 문자열 재정렬은 다음과 같습니다 -
으아아아시간 복잡도 - O(n * log n)
공간 복잡성 - O(n)
우리는 지도를 사용하여 사물을 분류하고 매핑합니다. 또한 해시 맵을 사용하고, 벡터나 배열을 정렬하고, 해시 맵의 인덱스를 인쇄할 수 있습니다. 시간 복잡도는 O(n*log(n))이고 공간 복잡도는 O(n)입니다.
위 내용은 C++ 프로그램: 단어 위치를 알파벳 순서로 재배열합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!