สมมติว่าเรามีสตริงไบนารี งานของเราคือตรวจสอบว่าสตริงมีอักขระที่เหมือนกันต่อเนื่องกันหรือไม่ หากมีอักขระที่เหมือนกันต่อเนื่องกัน แสดงว่าไม่ถูกต้อง มิฉะนั้นจะถูกต้อง จากนั้นสตริง “101010” ก็ใช้ได้ แต่ “10111010” ไม่ถูกต้อง
ในการแก้ปัญหานี้ เราจะข้ามจากซ้ายไปขวา หากอักขระสองตัวติดกันเป็นค่าเดียวกัน ให้คืนค่าเท็จ มิฉะนั้น จะเป็นจริง
ตัวอย่าง
#include <iostream> #include <algorithm> using namespace std; bool isConsecutiveSame(string str){ int len = str.length(); for(int i = 0; i<len - 1; i++){ if(str[i] == str[i + 1]) return false; } return true; } int main() { string str = "101010"; if(isConsecutiveSame(str)) cout << "No consecutive same characters"; else cout << "Consecutive same characters found"; }
ผลลัพธ์
No consecutive same characters