Поиск палиндрома максимальной длины

183
01 января 2022, 14:00

Создать файл из N целых чисел. Найти отрезок массива максимальной длины, в котором первое число равно последнему, второе - предпоследнему и т.д. Напечатать длину этого отрезка и весь файл.

Несколько дней просидел, ушёл чуть дальше объявления, нужна помощь хотя бы с алгоритмом

Answer 1

Сначала напишите функцию, которая проверяет для двух указателей верность условия задачи.

bool check(const int* first, const int* last)
{
    while (first != last) {
        if (*first++ != *last--)
            return false;
    }
    return true;
}

Потом читайте из файла все числа в массив(в контейнер), размер которого известен(равен N). int arr[N]; И вам нужна максимальная длина такого отрезка. Сначала инициализируйте его наименьшим значением unsigned max_langth = 1; А потом проверьте вохвращает ли функция истину для указателей на начало и конец отрезка. Если да, то разность этих указателей выдаст длину отрезка и вы его сравните:

if(max_langth < dist)
    max_langth = dist;

Выполните это для всех возможных отрезков массива(в циклах). В итоге получите max_langth с нужным значением

READ ALSO
Run-Time Check Failure #3 - The variable &#39;r&#39; is being used without being initialized

Run-Time Check Failure #3 - The variable 'r' is being used without being initialized

Ввод, вывод и main в других файлахНо там нет ошибок

193
Вывод в два столбца

Вывод в два столбца

Как сделать вывод в два столбца с помощью цикла do while

72
Удаление строки в файле при условии

Удаление строки в файле при условии

Нужно описать структуру, вывести её на экран и записать в файл, а потом удалить строчку с введённой длительностью (одно из полей структуры)

226
как вставить знак пунктуации &quot; внутри открытия и закрытия скобок &quot; &quot;

как вставить знак пунктуации " внутри открытия и закрытия скобок " "

я использую constexpr string_view test; и мне нужно добавить этот знак " в test = """ но компилятор ругается он так не понимает где закрытия и открытия скобок

72