使用 C++ 刪除兩個零之間的元素


在這篇文章中,我們將討論如何從給定的只包含零和一字元的字串中刪除兩個零之間的元素。最終字串不應包含任何被零包圍的“1”字元。例如:

Input : string = “110010”
Output : “11000”
Explanation: 1 is found between two zeros at the 4th index.

Input : string = “0010”
Output : “000”
Explanation : 1 is found between two zeros at the 2nd index.

尋找解決方案的方法

我們可以採用一種簡單的方法,即使用迴圈遍歷字串,並檢查前一個和下一個元素是否為零;如果是,則該索引不為零。之後,使用儲存長度的新變數更新長度,並列印該字串。

示例

#include <bits/stdc++.h>
using namespace std;

int main () {
   string str = "110010";
   int length = str.length();
   for (int i = 1; i < length - 1; i++) {
      // checking the element between two zeros
      if ((str.at (i - 1) == '0' && str.at (i + 1) == '0')) {
         // deleting the element
         // if it is found between two 0's
         str.erase (i, 1);

         i--;
         if (i > 0 && str.at (i - 1) == '0')
            i--;

            // updating the length of the string after removing the element.
         length = str.length ();
      }
   }
   cout << "String after removing elements between the two zeros: " << str;
   return 0;
}

輸出

String after removing elements between the two zeros: 1100

理解程式碼

  • 使用迴圈遍歷從索引 1 到 (長度 - 1) 的字串。
  • 檢查第 i 個索引的前一個和下一個索引是否等於“0”。
  • 如果它是“1”,則從該索引中刪除該字元。
  • 使用新變數更新長度變數。
  • 最後在迴圈結束後列印更新後的字串。

結論

在這篇文章中,我們討論了從包含“0”和“1”字元的字串中刪除兩個零之間的元素。我們還看到了一個 C++ 程式來解決這個問題;我們可以用其他任何語言(如 C、Java、Python 等)編寫此程式。希望本文對您有所幫助。

更新於:2021-11-29

瀏覽量:105

啟動你的職業生涯

完成課程獲得認證

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