Предыстория: Пару недель назад для интереса решил глянуть что такое Yandex Лицей. Cперва попытался подать туда заявление на учебу, но оказалась что они их принимают только с августа. Тогда я для интереса решил посмотреть что будет если подать заявку на то чтобы устроится к ним Преподавателем Программирования которых они тоже набирают и у них там для этого дела проходит конкурс в котором надо за 2 часа решить 4 задачки. За первую и вторую задачку Яндекс мои решения засчитал, а на Последней я застрял потому что Яндекс ни в какую не хотел принимать Моего решения.
См. код:
#include <iostream> #include <locale> using namespace std; wstring clearstr (wstring str){ wchar_t tire = 8212; wchar_t ie_gl = 1025; wchar_t ie_ml = 1105; wchar_t e_ml = 1077; int n = str.size(); for (int i=0; i<n; i++){ if( str[i] == ',' || str[i] == '.' || str[i] == tire || str[i] == '-' || str[i] == ':' || str[i] == ';' || str[i] == '?' || str[i] == '!' || str[i] == '\"' || str[i] == '(' || str[i] == ')') str[i] = ' '; if( str[i] == ie_gl || str[i] == ie_ml) str[i] = e_ml; } return str; } int check (wstring w) { bool poli; // признак палиндрома wchar_t *s = (wchar_t*)w.c_str(); // начало строки wchar_t *pb = s; wchar_t *pe = pb + wcslen(s) - 1; // конец строки do { while (*pb == ' ') pb++; while (*pe == ' ') pe--; poli = towlower(*pb) == towlower(*pe); // преобразование заглавных букв в малые } while (poli && ++pb <= --pe); wcout << (poli ? L"yes" : L"no") << endl; return 0; } int main() { setlocale(LC_ALL, ""); int n; wcin >> n; // t800 // wcout << "n = " << n << endl; // t800 wstring null; getline(wcin, null); for (int i=1;i<=n;i++) { wstring w(L"\n"); getline(wcin, w); // t800 //wcout << "w = " << w << endl; w = clearstr(w); //wcout<< "w clear = " << w << endl; check(w); } return 0; }
Хотя у меня на компе все мои тесты Мое Решение проходило
Условие Задачи
Сообщение отредактировал T-800 Danya: 31.07.2018, 18:05:15