Computer >> Máy Tính >  >> Lập trình >> C ++

Loại bỏ các phần tử giữa hai Zeros bằng C ++

Trong bài viết này, chúng ta sẽ thảo luận về cách xóa các phần tử nằm giữa hai số không khỏi một chuỗi nhất định chỉ chứa ký tự của 0 và một. Chuỗi cuối cùng không được chứa bất kỳ ký tự nào '1' được bao quanh bởi các ký tự 0. Ví dụ -

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.

Phương pháp tiếp cận để tìm ra giải pháp

Chúng ta có thể áp dụng một cách tiếp cận đơn giản, tức là duyệt qua chuỗi bằng cách sử dụng một vòng lặp và kiểm tra các phần tử trước đó và tiếp theo xem chúng có phải là số không hay không; nếu có, thì chỉ số đó không phải là 0. Sau đó, cập nhật biến với độ dài mới lưu trữ độ dài và in chuỗi đó.

Ví dụ

#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;
}

Đầu ra

String after removing elements between the two zeros: 1100

Hiểu mã

  • Một vòng lặp được sử dụng để đi qua chuỗi từ chỉ mục 1 đến (độ dài - 1).
  • Kiểm tra chỉ mục trước đó và chỉ mục tiếp theo của chỉ mục thứ i xem nó có bằng "0" hay không.
  • Xóa ký tự đó khỏi chỉ mục đó nếu nó là "1".
  • Cập nhật biến độ dài bằng một biến mới.
  • Cuối cùng in chuỗi đã cập nhật sau khi vòng lặp kết thúc.

Kết luận

Trong bài viết này, chúng tôi đã thảo luận về việc xóa các phần tử giữa hai số không khỏi chuỗi chứa ký tự ‘0’ và ‘1’. Chúng tôi cũng thấy một chương trình C ++ để giải quyết tương tự; chúng ta có thể viết chương trình này bằng bất kỳ ngôn ngữ nào khác như C, java, python, v.v. Hy vọng bạn thấy bài viết này hữu ích.