สมมติว่าเราได้รับสตริงที่มีเฉพาะตัวพิมพ์เล็กเท่านั้น งานของเราคือค้นหาว่ามีสตริงย่อยในสตริงที่กำหนดซึ่งเป็นพาลินโดรมและมีความยาวเท่ากันหรือไม่ หากพบ เราจะคืนค่า 1 มิฉะนั้น 0
ดังนั้น หากอินพุตเป็นเหมือน "ตอนบ่าย" ผลลัพธ์จะเป็นจริง
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- สำหรับการเริ่มต้น x :=0 เมื่อ x <ความยาวของสตริง - 1 เพิ่ม x ขึ้น 1 ให้ทำ −
- ถ้า string[x] เหมือนกับ string[x + 1] แล้ว:
- คืนค่าจริง
- ถ้า string[x] เหมือนกับ string[x + 1] แล้ว:
- คืนค่าเท็จ
ตัวอย่าง (C++)
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
#include <bits/stdc++.h>
using namespace std;
bool solve(string string) {
for (int x = 0; x < string.length() - 1; x++) {
if (string[x] == string[x + 1])
return true;
}
return false;
}
int main() {
cout<<solve("afternoon") <<endl;
} อินพุต
"afternoon"
ผลลัพธ์
1