Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++를 사용하여 두 0 사이의 요소 제거

<시간/>

이 기사에서는 0과 1만 포함하는 주어진 문자열에서 두 개의 0 사이의 요소를 제거하는 방법에 대해 설명합니다. 마지막 문자열에는 0으로 둘러싸인 '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.

해결책을 찾기 위한 접근 방식

루프를 사용하여 문자열을 탐색하고 이전 및 다음 요소가 0인지 확인하는 간단한 접근 방식을 적용할 수 있습니다. 그렇다면 해당 인덱스는 0이 아닙니다. 그런 다음 길이를 저장하는 새 길이로 변수를 업데이트하고 해당 문자열을 인쇄합니다.

예시

#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' 문자를 포함하는 문자열에서 두 개의 0 사이의 요소를 제거하는 것에 대해 논의했습니다. 같은 문제를 해결하는 C++ 프로그램도 있습니다. C, Java, python 등과 같은 다른 언어로 이 프로그램을 작성할 수 있습니다. 이 기사가 도움이 되기를 바랍니다.