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

ตรวจสอบว่าสตริงมีสตริงย่อยพาลินโดรมที่มีความยาวเท่ากันใน C++ . หรือไม่


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

ดังนั้น หากอินพุตเป็นเหมือน "ตอนบ่าย" ผลลัพธ์จะเป็นจริง

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • สำหรับการเริ่มต้น x :=0 เมื่อ x <ความยาวของสตริง - 1 เพิ่ม 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