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

C++에서 문자열 압축


문자열 s가 있다고 가정하면 주어진 문자열에서 연속적인 중복 문자를 제거하고 반환해야 합니다. 따라서 목록에 연속적으로 반복되는 문자가 포함되어 있으면 해당 문자의 단일 사본으로 대체되어야 합니다. 요소의 순서는 이전과 동일합니다.

따라서 입력이 "heeeeelllllllloooooo"와 같으면 출력은 "hello"가 됩니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • ret :=빈 문자열

  • initialize i :=0의 경우, i

    • ret의 크기가 0이 아니고 ret의 마지막 요소가 s[i]와 같으면 -

      • 다음 부분은 무시하고 다음 반복으로 건너뜁니다.

    • ret :=ret 연결 s[i]

  • 리턴 렛

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

#include 네임스페이스 std;class Solution { public:string solve(string s) { string ret =""; for(int i =0; i  

입력

"히에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에에 이상의 이상 

출력

안녕하세요