Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

사전순으로 C++의 다음 순열

<시간/>

여기에서 우리는 C++에서 문자열의 다음 순열을 사전식으로 생성하는 방법을 볼 것입니다. 사전순으로 다음 순열은 기본적으로 더 큰 순열입니다. 예를 들어 "ACB"의 다음은 "BAC"입니다. 어떤 경우에는 사전순으로 다음 순열이 존재하지 않습니다(예:"BBB" 또는 "DCBA" 등).

C++에서는 next_permutation()이라는 라이브러리 함수를 사용하여 이를 수행할 수 있습니다. 이것은 알고리즘 헤더 파일에 있습니다.

예시

#include <iostream>
#include <algorithm>
using namespace std;
main() {
   string s = "DBAC";
   for(int i = 0; i<5; i++) {
      bool val = next_permutation(s.begin(), s.end());
      if (val == false) {
         cout << "No next permutation" << endl;
         break;
      } else
      cout << "Next: " << s << endl;
   }
}

출력

Next: DBCA
Next: DCAB
Next: DCBA
No next permutation