Menu
Coddy logo textTech

Practice #1

Leçon 10 sur 14 du cours Liste doublement chaînée - Série Structures de données n°6 de Coddy.

challenge icon

Défi

Facile

Écrivez une fonction isPalindrome qui reçoit un tableau d'entiers arr (les valeurs d'une liste doublement chaînée) et renvoie true s'il se lit de la même manière à l'endroit et à l'envers, et false sinon.

Utilisez une liste doublement chaînée pour résoudre ce problème ! Parcourez la liste avec un pointeur partant de head vers l'avant et un autre partant de tail vers l'arrière ; ils se rejoignent au milieu.

Vous devez utiliser la classe DoublyLinkedList (fournie dans doublylinkedlist.<ext> ainsi que node.<ext>) — n'utilisez pas les fonctions intégrées du langage comme l'inversion de tableaux (reverse), le découpage (slicing), le tri (sort) ou les opérations de liste de la bibliothèque standard (stdlib) pour calculer le résultat.

Essayez vous-même

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "solution.h"

int main() {
    char line[8192];
    if (!fgets(line, sizeof(line), stdin)) line[0] = '\0';
    int arr[4096];
    int len = 0;
    char* tok = strtok(line, " \t\r\n");
    while (tok) { arr[len++] = atoi(tok); tok = strtok(NULL, " \t\r\n"); }
    int r = isPalindrome(arr, len);
printf("%s\n", r ? "true" : "false");
    return 0;
}

Toutes les leçons de Liste doublement chaînée - Série Structures de données n°6