สมมติว่าเราได้รับสตริงที่มีเฉพาะตัวพิมพ์เล็กเท่านั้น งานของเราคือค้นหาว่ามีสตริงย่อยในสตริงที่กำหนดซึ่งเป็นพาลินโดรมและมีความยาวเท่ากันหรือไม่ หากพบ เราจะคืนค่า 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