在C++中刪除二進位制字串中的“01”或“10”使其不包含“01”或“10”?


讓我們首先宣告初始字串,計算其長度,並將它們傳遞給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小於length,並在遇到0和1時分別遞增count_0和count_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

更新於:2021年1月16日

78 次瀏覽

開啟您的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.