SHARE
TWEET

Untitled

a guest Dec 16th, 2018 69 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <string>
  3. #include <vector>
  4. #include <regex>
  5. #include <windows.h>
  6.  
  7.  
  8.  
  9. using namespace std;
  10.  
  11.  
  12. std::vector<std::string> split(const string& input, const string& regex) {
  13.     std::regex re(regex);
  14.     std::sregex_token_iterator
  15.         first{ input.begin(), input.end(), re, -1 },
  16.         last;
  17.     return { first, last };
  18. }
  19.  
  20. bool detectedPalandrome(string &word)
  21. {
  22.     string copyWord = word;
  23.     reverse(copyWord.begin(), copyWord.end());
  24.     return (word == copyWord ? true : false );
  25. }
  26.  
  27.  
  28. void deletePalandrome(vector <string> &wordArray)
  29. {
  30.     vector <int> PalandromeId;
  31.     int maxSize = 0;
  32.     for (int i = 0; i < wordArray.size(); i++)
  33.     {
  34.         if (wordArray[i].size() > 1)
  35.         {
  36.             if (detectedPalandrome(wordArray[i]))
  37.             {
  38.                 if (maxSize == wordArray[i].size() && wordArray[i-1] == wordArray[i])
  39.                 {
  40.                     PalandromeId.push_back(i);
  41.                 }
  42.                 if (maxSize < wordArray[i].size())
  43.                 {
  44.                     maxSize = wordArray[i].size();
  45.                     PalandromeId.push_back(i);
  46.                     if (i =! 0)
  47.                     {
  48.                         if ((wordArray[i - 1].size() < wordArray[i].size()) && (detectedPalandrome(wordArray[i - 1])))
  49.                         {
  50.                             PalandromeId.erase(PalandromeId.begin() + i - 1);
  51.                         }
  52.                     }
  53.                 }
  54.             }
  55.         }
  56.     }
  57.    
  58.     for (int i = 0; i < PalandromeId.size();i++) {
  59.         wordArray[PalandromeId[i]] = "";
  60.     }
  61. }
  62.  
  63.  
  64.  
  65. int main()
  66. {
  67.     SetConsoleCP(1251);
  68.     SetConsoleOutputCP(1251);
  69.  
  70.     string names;
  71.     vector <string>  wordArray;
  72.  
  73.     std::cout << "Введите предложение: ";
  74.     std::getline(std::cin, names);
  75.  
  76.     wordArray = split(names, " ");
  77.     deletePalandrome(wordArray);
  78.  
  79.     cout << std::endl;
  80.     cout << "Выходное предложение:" << std::endl;
  81.    
  82.     for (auto &elem : wordArray)
  83.     {
  84.         cout << elem + " ";
  85.     }
  86.  
  87.     getchar();
  88.     return 0;
  89. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top