oj1564 : 실행 길이 인코딩 루프 남부 2

제목 요구
, 런 렝스 부호화는 또한 "런 렝스 부호화"또는 "실행 길이 코딩"이라고 통계는 코딩, 무손실 부호화 압축이다. 바이너리에 대한도 효과적.
  RLE 실행 길이는 설명 부호화하는
  압축 기술은 널리 소프트웨어, 오디오, 비디오 및 기타 형식의 다양한 분야에서 이용되고있다, 현재. 손실 압축 및 무손실 압축 [1] : 일반적으로, 화상 압축 형식의 두 가지 종류가있다. 시각적 인식의 원리를 사용하여 손실 압축은 큰 데이터 파일을 압축 할 수 있지만, 화질에 영향을 미칠 것이다. 기본 원리는 크게 디스크에 저장되는 이미지의 용량을 감소, 일부 중복 된 데이터를 삭제할 수 있습니다, 단순히 시간을 저장 색상 정보의 같은 무손실 압축입니다. 무손실 압축의 이점은보다 영상의 품질을 유지하는 능력이다, 그러나 상대적으로 손실 압축이 방법의 압축비는 상대적으로 낮은 것이다. 일반적으로 사용되는 무손실 압축 알고리즘 RLE, LZW 등등.
RLE 압축 알고리즘의 기본 원리
  RLE (실행 - 길이 인코딩 런 - 길이 부호화)가 Windows 파일 압축 방식의 시스템에 사용 된 이미지 압축 알고리즘이고, 기본 아이디어는 두 개의 인접 화소와 스캔 라인에서 동일한 색의 값 두번째 바이트는 특정 화소 값 [2]는, 바이트 나타내는데, 첫 바이트를 지정 화소의 반복 수있는 카운트 값이다. 중복 압축 또는 중복 비트 데이터 바이트의 제거에 의해 주로 바이트, 따라서 공간이 파일에 의해 점유 감소. 예를 들어, RRRRRGGBBBBBB 컬러 화소 값을 나타내는 문자열은 문자열 길이 겉보기 런 길이가 이전보다 훨씬 작은 것이다 사용 5R2G6B RLE 압축 방법, 후 교체 될 수있다. 디코딩 및 인코딩에 사용 된 것과 같은 규칙에 따라, 감소 및 압축 후의 데이터 전에 동일한 데이터. 따라서, RLE는 무손실 압축 기술이다.

입력은
하나의 문자열입니다. (이하 100 이상 길이)
출력
코드 스트링.
입력 샘플
원시
iiiiillllovvveeeeeeeaaaccccccccmmmmmmmmmm
출력 샘플
원시
5i4l1o3v7e3a8c10m의
이 만날 때까지 다른 문자를 다시 시작 아래로 화제가 동일한 문자 통계 및 계산에 인접 해 있습니다.
전체 코드

#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
#include<queue>
#include<stdio.h>
#include<string.h>
using namespace std;
int main() 
{
    char s[1000];
    char s1[500];
    int count = 1, n1 = 0;
    int num[100];
        cin >> s;
        for (int i = 0; i < strlen(s); i++) 
        {
            if (s[i] == s[i + 1])
                count++;
            else 
            {
                num[n1] = count;
                s1[n1] = s[i];
                n1++;
                count = 1;
            }
        }
        num[n1] = -1;
        s1[n1] = '[';
        n1++;
    for(int j = 0; j < n1; j++)
    {
        if (num[j] != -1)
            printf("%d%c", num[j], s1[j]);
        else
            printf("\n");
    }
    return 0;
}
게시 38 개 원래 기사 · 원의 찬양 (27) · 전망 3174

추천

출처blog.csdn.net/qq_45891413/article/details/105082497