Advertisement
Guest User

Untitled

a guest
Dec 16th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  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 seachPalandrome(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 (seachPalandrome(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()) && (seachPalandrome(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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement