Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <vector>
- #include <regex>
- #include <windows.h>
- using namespace std;
- std::vector<std::string> split(const string& input, const string& regex) {
- std::regex re(regex);
- std::sregex_token_iterator
- first{ input.begin(), input.end(), re, -1 },
- last;
- return { first, last };
- }
- bool detectedPalandrome(string &word)
- {
- string copyWord = word;
- reverse(copyWord.begin(), copyWord.end());
- return (word == copyWord ? true : false );
- }
- void deletePalandrome(vector <string> &wordArray)
- {
- vector <int> PalandromeId;
- int maxSize = 0;
- for (int i = 0; i < wordArray.size(); i++)
- {
- if (wordArray[i].size() > 1)
- {
- if (detectedPalandrome(wordArray[i]))
- {
- if (maxSize == wordArray[i].size() && wordArray[i-1] == wordArray[i])
- {
- PalandromeId.push_back(i);
- }
- if (maxSize < wordArray[i].size())
- {
- maxSize = wordArray[i].size();
- PalandromeId.push_back(i);
- if (i =! 0)
- {
- if ((wordArray[i - 1].size() < wordArray[i].size()) && (detectedPalandrome(wordArray[i - 1])))
- {
- PalandromeId.erase(PalandromeId.begin() + i - 1);
- }
- }
- }
- }
- }
- }
- for (int i = 0; i < PalandromeId.size();i++) {
- wordArray[PalandromeId[i]] = "";
- }
- }
- int main()
- {
- SetConsoleCP(1251);
- SetConsoleOutputCP(1251);
- string names;
- vector <string> wordArray;
- std::cout << "Введите предложение: ";
- std::getline(std::cin, names);
- wordArray = split(names, " ");
- deletePalandrome(wordArray);
- cout << std::endl;
- cout << "Выходное предложение:" << std::endl;
- for (auto &elem : wordArray)
- {
- cout << elem + " ";
- }
- getchar();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement