Practice #1
Lektion 10 von 14 im Kurs Doppelt verkettete Liste - Datenstrukturen-Serie #6 von Coddy.
Aufgabe
EinfachSchreiben Sie eine Funktion isPalindrome, die ein Ganzzahl-Array arr (die Werte einer doppelt verketteten Liste) erhält und true zurückgibt, wenn sie vorwärts und rückwärts gleich gelesen wird, andernfalls false.
Verwenden Sie eine doppelt verkettete Liste, um dieses Problem zu lösen! Bewegen Sie einen Zeiger vom head vorwärts und einen anderen vom tail rückwärts; sie treffen sich in der Mitte.
Sie müssen die Klasse DoublyLinkedList verwenden (bereitgestellt in doublylinkedlist.<ext> zusammen mit node.<ext>) — verwenden Sie keine in der Sprache eingebauten Funktionen wie das Umkehren von Arrays, Slicing, Sortieren oder Standardbibliotheks-Listenoperationen, um das Ergebnis zu berechnen.
Probier es selbst
#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;
}