Dev - C++ - Decodificar una sucesión de a y b que aparece codificada

 
Vista:
sin imagen de perfil
Val: 2
Ha disminuido su posición en 5 puestos en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Decodificar una sucesión de a y b que aparece codificada

Publicado por juan angel (2 intervenciones) el 11/10/2018 05:12:10
Decodificar una sucesión de a’s y b’s que aparece codificada por medio de un conjunto de parejas de dígitos y letras donde el dígito indica el número de veces que se repite la letra que lo sucede. El programa debe leer en una línea la sucesión codificada para después decodificarla.
Ejemplo:
Si la sucesión codificada leída es: 3a4b2a
la salida del programa debe ser: aaabbbbaa
Notas:
Los números son de un sólo dígito (no hay 10,11, ...).
Puede haber tantas sucesiones de a’s y b’s como se desee.
Las letras no necesariamente vienen alternadas.
En la línea de lectura, no hay ningún espacio.
Considere que la sucesión decodificada será de longitud menor o igual a 80 caracteres
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Decodificar una sucesión de a y b que aparece codificada

Publicado por Tom (65 intervenciones) el 17/10/2018 19:46:13
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/* */
int decode(std::string& s) {
	bool isCount = true;
	int count, result = 0;
 
	for(char const &c : s) {
		if(isCount) {
			if(c >= '0' && c <= '9') {
				count = c - '0';
			} else {
				result = 1;
				break;
			}
		} else {
			if(c == 'a' || c == 'b') {
				std::cout << std::setfill(c) << std::setw(count) << c;
			} else {
				result = 1;
				break;
			}
		}
		isCount = !isCount;
	}
	std::cout << std::endl;
	return result;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar