Palindrome: từ đọc xuôi ngược giống nhau (ví dụ: "nitin", "malayalam"). Tìm palindrome dài nhất trong câu.
Ví dụ
Câu: "malayalam liemadameil iji"
Các palindrome: malayalam (9), liemadameil (11), iji (3)
Kết quả: liemadameil
Chương trình
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "malayalam liemadameil iji";
int len = strlen(str);
int maxLen = 0, startIdx = -1;
for (int i = 0; i < len; i++) {
int j = i;
while (j < len && str[j] != ' ' && str[j] != '\0') j++;
int wordEnd = j - 1;
bool isPalin = true;
for (int k = i, l = wordEnd; k < l; k++, l--)
if (str[k] != str[l]) { isPalin = false; break; }
if (isPalin && (wordEnd - i + 1) > maxLen) {
maxLen = wordEnd - i + 1;
startIdx = i;
}
i = j;
}
if (startIdx != -1) {
for (int i = startIdx; i < startIdx + maxLen; i++)
printf("%c", str[i]);
}
return 0;
}
Kết quả
liemadameil