Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <array>
- #include <vector>
- std::string s = "aaaab";
- std::array<size_t, 255> count_l = {0};
- std::vector<unsigned char> stack;
- void stack_write_up() {
- for (auto i : stack) {
- std::cout << i;
- }
- }
- void stack_write_down() {
- for (int i = stack.size() - 1; i >= 0; i--) {
- std::cout << stack[i];
- }
- }
- void write_pol() {
- for (int i = 0; i < 255; i++) {
- if (count_l[i] >= 1) {
- stack_write_up();
- std::cout << (char)i;
- stack_write_down();
- std::cout << std::endl;
- if (count_l[i] == 1) {
- continue;
- }
- count_l[i] -= 2;
- stack.push_back((unsigned char) i);
- stack_write_up();
- stack_write_down();
- std::cout << std::endl;
- write_pol();
- stack.pop_back();
- count_l[i] += 2;
- }
- }
- }
- int main() {
- for (auto i : s) {
- count_l[i]++;
- }
- write_pol();
- return 0;
- }
Add Comment
Please, Sign In to add comment