Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Loại bỏ phần tử giữa hai số 0 trong C++


Trong bài viết này, ta sẽ thảo luận cách loại bỏ phần tử giữa hai số 0 từ một chuỗi cho trước chỉ chứa ký tự '0' và '1'. Chuỗi cuối cùng không được chứa ký tự '1' bị bao quanh bởi '0'. Ví dụ −

Input : string = “110010” Output : “11000” Giải thích: 1 được tìm thấy giữa hai số 0 tại chỉ số 4. Input : string = “0010” Output : “000” Giải thích : 1 được tìm thấy giữa hai số 0 tại chỉ số 2.

Phương pháp tìm giải pháp

Ta có thể áp dụng phương pháp đơn giản, tức là duyệt chuỗi dùng vòng lặp và kiểm tra phần tử trước và sau xem có phải là 0 không; nếu có, thì chỉ số đó không phải 0. Sau đó, cập nhật biến với độ dài mới lưu độ 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++) {       // kiểm tra phần tử giữa hai số 0       if ((str.at (i - 1) == '0' && str.at (i + 1) == '0')) {          // xóa phần tử          // nếu nó được tìm thấy giữa hai 0's          str.erase (i, 1);          i--;          if (i > 0 && str.at (i - 1) == '0')             i--;             // cập nhật độ dài chuỗi sau khi xóa phần tử.          length = str.length ();       }    }    cout << "String after removing elements between the two zeros: " << str;    return 0; }

Kết quả

String after removing elements between the two zeros: 1100

Hiểu mã

  • Một vòng lặp dùng để duyệt chuỗi từ chỉ số 1 đến (độ dài - 1).
  • Kiểm tra chỉ số trước và sau của chỉ số i xem có bằng '0' không.
  • Xóa ký tự tại chỉ số đó nếu là '1'.
  • Cập nhật biến độ dài với 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, ta thảo luận loại bỏ phần tử giữa hai số 0 từ chuỗi chứa ký tự '0' và '1'. Ta cũng thấy chương trình C++ giải quyết bài toán; 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 hữu ích.