Practice #1
Coddy'nin Çift Yönlü Bağlı Liste - Veri Yapıları Serisi #6 kursunda ders 10 / 14.
Görev
KolayBir tam sayı dizisi arr (bir çift yönlü bağlı listenin değerleri) alan ve bu dizi ileri ve geri doğru aynı şekilde okunuyorsa true, aksi takdirde false döndüren bir isPalindrome fonksiyonu yazın.
Bu problemi çözmek için bir çift yönlü bağlı liste kullanın! Bir işaretçiyi head üzerinden ileriye, diğerini ise tail üzerinden geriye doğru yürütün; bu işaretçiler ortada buluşacaktır.
DoublyLinkedList sınıfını kullanmalısınız (node.<ext> ile birlikte doublylinkedlist.<ext> dosyasında sağlanmıştır) — sonucu hesaplamak için dizilerin ters çevrilmesi (reverse), dilimleme (slicing), sıralama (sort) veya standart kütüphane liste işlemleri gibi dile özgü yerleşik özellikleri kullanmayın.
Kendin dene
#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;
}