Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

พิมพ์คำพาลินโดรมที่ยาวที่สุดในประโยค ในภาษา C

หาคำที่เป็นพาลินโดรม (อ่านจากหน้าหลังหลังหน้าได้เหมือนกัน) และยาวที่สุดในประโยคที่กำหนด

ตัวอย่าง

ประโยค: "malayalam liemadameil iji"

คำพาลินโดรม: malayalam, liemadameil, iji

คำที่ยาวที่สุด: liemadameil

โค้ดตัวอย่าง

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "malayalam liemadameil iji";
    int i, k, l, j, max = 0, index = -1, count = 0;
    
    for (i = 0; i < strlen(str); i++) {
        max = 0;
        k = i;
        j = i + 1;
        while (str[j] != ' ' && str[j] != '\0') j++;
        l = j - 1;
        
        if (str[k] != ' ' && str[k] != '\0') {
            while (k <= l) {
                if (str[k] == str[l]) {
                    max++;
                    if (count <= max) {
                        index = i;
                        count = max;
                    }
                } else {
                    max = 0;
                    count = -1;
                    break;
                }
                k++; l--;
            }
        }
        i = j;
    }
    
    for (i = index; i != -1 && str[i] != ' ' && str[i] != '\0'; i++)
        printf("%c", str[i]);
    return 0;
}

ผลลัพธ์

liemadameil