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

ตรวจสอบสตริงว่ามีสับสตริงพาลินโดรมยาวคู่ใน C++


ปัญหา

ได้รับสตริงตัวพิมพ์เล็ก ตรวจสอบว่ามีสับสตริงที่เป็นพาลินโดรมและมีความยาวเป็นเลขคู่หรือไม่

ข้อสังเกตสำคัญ

พาลินโดรมยาวคู่ที่สั้นที่สุดคือความยาว 2 → ต้องมีตัวอักษรซ้ำกันติดกัน (เช่น "aa", "bb")

ดังนั้น ตรวจสอบเพียงว่า มี s[i] == s[i+1] หรือไม่

โปรแกรมตัวอย่าง

#include <bits/stdc++.h>
using namespace std;

bool hasEvenPalindrome(string s) {
    for (int i = 0; i < (int)s.length() - 1; i++)
        if (s[i] == s[i + 1]) return true;
    return false;
}

int main() {
    cout << hasEvenPalindrome("afternoon");  // 1 (มี "oo")
    return 0;
}