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

การลบ "01" หรือ "10" ในสตริงไบนารีเพื่อให้เป็นอิสระจาก "01" หรือ "10 ใน C ++?


ให้เราประกาศสตริงเริ่มต้นของเราก่อนแล้วคำนวณความยาวและส่งต่อไปที่ฟังก์ชัน deleteSubstr(str,length)

string str = "01010110011";
int length = str.length();
cout <<"Count of substring deletion"<< deleteSubstr(str, length);

ภายในฟังก์ชัน deleteSubstr(string str, int length) ลูป for จะทำงานจนกว่า I จะน้อยกว่าความยาว และเพิ่มค่าตัวแปร count_0 และ count_1 เมื่อพบ 0 และ 1 ตามลำดับ จากนั้นฟังก์ชันจะส่งกลับค่าต่ำสุดของ count_0 และ count_1

int deleteSubstr(string str, int length){
   int count_0 = 0, count_1 = 0;
   for (int i = 0; i < length; i++) {
      if (str[i] == '0')
         count_0++;
      else
         count_1++;
   }
   return min(count_0, count_1);
}

ตัวอย่าง

ให้เราดูการดำเนินการต่อไปนี้ของการลบ “01” หรือ “10” ในสตริงไบนารีเพื่อให้เป็นอิสระจาก “01” หรือ “10”−

#include <iostream>
using namespace std;
int deleteSubstr(string str, int length){
   int count_0 = 0, count_1 = 0;
   for (int i = 0; i < length; i++) {
      if (str[i] == '0')
         count_0++;
      else
         count_1++;
   }
   return min(count_0, count_1);
}
int main(){
   string str = "01010110011";
   int length = str.length();
   cout <<"Count of substring deletion "<< deleteSubstr(str, length);
   return 0;
}

ผลลัพธ์

รหัสข้างต้นจะสร้างผลลัพธ์ต่อไปนี้ -

Count of substring deletion 5