Teclado del teléfono móvil (prueba de Tsinghua en la máquina)

Prefacio:

21. Independientemente de si puede ingresar a la nueva prueba o no, registre el código de basura escrito en el camino. Originalmente mordí "Notas de algoritmo", pero sentí demasiado para hacerlo, así que lo cambié a una guía de prueba manual.

Descripción del Título:

De acuerdo con la forma de ingresar letras en el teclado del teléfono móvil, calcule el tiempo empleado como: a, b, c están todos en la tecla "1", la entrada a solo debe presionarse una vez, la entrada c debe presionarse tres veces seguidas. Si dos caracteres consecutivos no están en el mismo botón, puede presionarlo directamente, como por ejemplo: ad debe presionarse dos veces, kz debe presionarse 6 veces. Si dos caracteres consecutivos están en el mismo botón, debe esperar un rato entre los dos botones. Como ac, después de presionar a, debe esperar un poco antes de poder presionar c. Ahora suponga que cada pulsación tiene un período de tiempo y el tiempo de espera tiene dos períodos de tiempo. Ahora, dada una cadena de caracteres, debe calcular el tiempo que lleva.

Ingrese descripción

Una cadena de no más de 100, en la que solo las letras minúsculas de las teclas del teléfono

Descripción de salida:

La entrada puede incluir múltiples conjuntos de datos. Para cada conjunto de datos, el tiempo requerido para que la salida presione la cadena dada por Input

responder

#include<stdio.h>
#include<cstring>

int keytab[26] = {
    
     1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,4,1,2,3,1,2,3,4 };
int main()
{
    
    
	char str[101];
	for (int i = 0; i < 101; i++)
		str[i] = NULL;
	while (scanf("%s", str) != EOF) {
    
    
		int time = 0;
		for (int i = 0; i < strlen(str); i++) {
    
    
			time += keytab[str[i] - 'a'];
			if (i != 0 && ((str[i] - str[i - 1]) == (keytab[str[i]-'a'] - keytab[str[i - 1]-'a'])))
				time = time + 2 ;
		}
		printf("%d\n", time);
		for (int i = 0; i < 101; i++)
			str[i] = NULL;
	}
	return 0;
}

Supongo que te gusta

Origin blog.csdn.net/weixin_44897291/article/details/112740063
Recomendado
Clasificación