oj1564: boucle d'encodage de longueur de Southern 2

Titre requis
codage RLL est aussi appelée « longueur d'exécution de codage » ou « RLL de codage », est un codage statistique, le codage est une compression sans perte de codage. efficace pour la figure binaire.
  RLE longueur de course codant décrit
  Actuellement, la technologie de compression a été largement utilisé dans divers domaines des logiciels, audio, vidéo et d' autres formats. En général, il existe deux types distincts de formats de compression d'image: compression avec perte et une compression sans perte [1]. La compression avec perte selon le principe de la reconnaissance visuelle peut être fichier de données fortement compressées, mais aura une incidence sur la qualité de l' image. Le principe de base est la même compression sans perte d'information couleur tout simplement gagner du temps, vous pouvez supprimer des données en double, ce qui réduit considérablement la capacité de l'image à enregistrer sur le disque. avantage de compression sans perte est la capacité à mieux préserver la qualité de l'image, mais relativement compression avec perte est un rapport de compression de ce procédé est relativement faible. Couramment utilisé algorithme de compression sans perte RLE, LZW et ainsi de suite.
Le principe de base de RLE algorithme de compression
  RLE (Run - Length Encoding par longueur de codage) est un algorithme de compression d'image utilisé dans le système de procédé de compression de fichier Windows, l'idée de base est la suivante : la valeur de la même couleur dans une ligne de balayage à deux pixels adjacents octets pour représenter, le premier octet est une valeur de comptage indiquant le nombre de répétitions de pixels; deuxième octet est la valeur de pixel spécifique [2]. La redondance octets principalement par la compression ou la suppression d'octets de données de bits redondants, et donc de diminuer l'espace occupé par le fichier. Par exemple, une chaîne de caractères montrant des valeurs de pixel de couleur RRRRRGGBBBBBB, peut être remplacé après utilisation méthode de compression 5R2G6B RLE, qui est la longueur de course apparente de la longueur de chaîne est beaucoup plus petit que l'ancien. Selon les mêmes règles que celles utilisées pour le décodage et le codage, des données identiques avant que les données obtenues après réduction et compression. Par conséquent, RLE est une technologie de compression sans perte.

Entrée
est une seule chaîne. (Longueur inférieure à 100) de
la sortie
de la chaîne codée.
L'entrée de l'échantillon
brut
iiiiillllovvveeeeeeeaaaccccccccmmmmmmmmmm
l'échantillon de la sortie
Raw
5i4l1o3v7e3a8c10m
sujet est adjacent aux mêmes statistiques de caractère et décompté jusqu'à ce qu'il rencontre un caractère différent de recommencer.
Le code complet

#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;
}
Publié 38 articles originaux · a gagné les éloges 27 · vues 3174

Je suppose que tu aimes

Origine blog.csdn.net/qq_45891413/article/details/105082497
conseillé
Classement