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

การลบ "01" หรือ "10" ในสตริงไบนารีเพื่อให้ปราศจาก "01" หรือ "10" ในโปรแกรม C ++


ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมที่หาจำนวนคู่ทั้งหมด (01 หรือ 10) เพื่อปลดปล่อยสตริงไบนารีจากคู่ (01 และ 10) มาดูตัวอย่างกัน

ป้อนข้อมูล − 101010001

ผลผลิต − 4

ในตัวอย่างข้างต้น เราต้องลบทั้งหมด 4 คู่เพื่อแยกสตริงไบนารีออกจากคู่ (01 และ 10)

สตริงผลลัพธ์หลังจากลบคู่ทั้งหมดคือ 0 .

เราต้องลบ 01 . ทั้งหมด และ 10 คู่จากสตริงไบนารี ดังนั้น จำนวนคู่ทั้งหมดที่จะลบคือขั้นต่ำ นับ(1) และ นับ(0) .

มาดูขั้นตอนการแก้ปัญหากัน

  • เริ่มต้นสตริงไบนารี

  • หาเลขศูนย์แล้วนับหนึ่ง

  • พิมพ์ค่าต่ำสุดจากศูนย์และนับจำนวน

ตัวอย่าง

มาดูโค้ดกันเลย

#include <bits/stdc++.h>
using namespace std;
int findMinimumNumberOfDeletions(string str, int len) {
   int zeroes_count = 0, ones_count = 0;
   // counting zeroes and ones
   for (int i = 0; i < len; i++) {
      if (str[i] == '0') {
         zeroes_count++;
      }
      else {
         ones_count++;
      }
   }
   return min(zeroes_count, ones_count);
}
int main() {
   string str = "101010001";
   int len = str.length();
   cout << findMinimumNumberOfDeletions(str, len) << endl;
   return 0;
}

ผลลัพธ์

หากคุณรันโปรแกรมข้างต้น คุณจะได้ผลลัพธ์ดังต่อไปนี้

4

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น