Напишите программу, которая бы выдавала анаграммы предложений, то есть все перестановки слов предложения (а не перестановки букв в словах).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#include <iostream> using std::cout; using std::endl; using std::cin; #include <algorithm> using std::next_permutation; using std::sort; #include <string> using std::string; #include <vector> using std::vector; #include <cstring> using std::strtok; int main() { string s("hellow world gacpada"); cout <<"vvedite predlojenie"<<endl; cout <<" ... "; getline(cin,s); vector<string> v; char* leksema=strtok((char*)s.c_str()," "); while(leksema!=NULL) { v.push_back(leksema); leksema=strtok(NULL," "); } //нужно обязательно сортировать sort(v.begin(),v.end()); do { for(int i=0;i<v.size();i++) cout <<v[i]<<' '; cout <<endl; }while(next_permutation(v.begin(),v.end())); return 0; } |
[youtube]http://www.youtube.com/watch?v=dskUFVkAa3k[/youtube]