fork(1) download
  1. #include <iostream>
  2. #include <string>
  3. #include <algorithm>
  4. #include <set>
  5. #include <iterator>
  6.  
  7. std::set<std::string> palindromeGen(std::string charactersSet)
  8. {
  9. std::set<std::string> pals;
  10. std::sort(charactersSet.begin(), charactersSet.end());
  11. do
  12. {
  13. if ( std::string(charactersSet.rbegin(), charactersSet.rend()) == charactersSet )
  14. pals.insert(charactersSet);
  15. } while (std::next_permutation(charactersSet.begin(), charactersSet.end()));
  16. return pals;
  17. }
  18.  
  19. int main()
  20. {
  21. auto retVal = palindromeGen("abcabc");
  22. std::cout << retVal.size() << '\n';
  23. std::copy(retVal.begin(), retVal.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
  24. }
Success #stdin #stdout 0s 3464KB
stdin
Standard input is empty
stdout
6
abccba
acbbca
baccab
bcaacb
cabbac
cbaabc