이 기사에서는 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 등과 같은 다른 언어로 이 프로그램을 작성할 수 있습니다. 이 기사가 도움이 되기를 바랍니다.