POJ 1146 - ID Codes
http://poj.org/problem?id=1146
概要
小文字のアルファベットからなる文字列が与えられる. その文字の集合から生成できるすべての文字列を辞書順に並べたとき,与えられ文字列の次の文字列を答える. ただし,与えられた文字列が最後の文字列だったときは「No Successor」と出力する.
制約
- 文字列の長さ <= 50
解法
next_permutation するだけ.
poj/1146.cc1 #include <iostream> 2 #include <algorithm> 3 using namespace std; 4 5 int main() 6 { 7 string s; 8 while (cin >> s && s != "#") { 9 if (next_permutation(s.begin(), s.end())) { 10 cout << s << endl; 11 } else { 12 cout << "No Successor" << endl; 13 } 14 } 15 return 0; 16 }