Реализовать функцию, которая принимает строку и возвращает истину, если строка является палиндромом c указанными позициями в строке — C++(Си)

#include <iostream>
#include <string>
#include <algorithm>
 
bool isPal(std::string::const_iterator first, std::string::const_iterator second)
{
    const std::string string(first, second);
    std::string tmp_str;
    std::remove_copy(string.begin(), string.end(), std::back_inserter(tmp_str), ' ');
    return tmp_str == std::string(tmp_str.rbegin(), tmp_str.rend());
}
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    int first = 0, second = 0;
    std::cout<<"Enter [start, end) indexes: ";
    std::cin>>first>>second;
    std::cout<< (isPal(str.begin() + first, str.begin() + second) ? "Yes" : "No");
}

Leave a Comment