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

更新日期:2019年7月30日

2千次以上檢視

開啟您的 職業

完成課程以獲得認證

開始
廣告
© . All rights reserved.