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

ขั้นตอนขั้นต่ำในการลบสตริงย่อย 010 ออกจากสตริงไบนารีใน C++


คำชี้แจงปัญหา

ด้วยสตริงไบนารี ภารกิจคือการนับขั้นตอนขั้นต่ำเพื่อลบสตริงย่อย 010 ออกจากสตริงไบนารีนี้

ตัวอย่าง

หากสตริงอินพุตคือ 010010 จำเป็นต้องมี 2 ขั้นตอน

  • แปลง 0 เป็น 1 แรก ตอนนี้สตริงจะกลายเป็น 110010
  • แปลง 0 สุดท้ายเป็น 1 ตอนนี้สตริงสุดท้ายกลายเป็น 110011

อัลกอริทึม

<ก่อน>1. วนซ้ำสตริงจากดัชนี 0 sto n-22 หากในสตริงไบนารีมีอักขระสามตัวติดต่อกันคือ '0', '1', '0' อักขระใดตัวหนึ่งสามารถเปลี่ยนได้เพิ่มตัวนับลูป 2

ตัวอย่าง

#include ใช้เนมสเปซ std;int getMinSteps (สตริง str) { int cnt =0; สำหรับ (int i =0; i