Solución del problema de Pintia - 7-18 El estado de ánimo del Big Ben

7-18 El estado de ánimo del Big Ben

Titulo original:

Algunos internautas preguntaron: ¿Habrá más preguntas sobre el Big Ben en el futuro? Ben Zhong respondió: Depende de tu estado de ánimo...

Esta pregunta le pide que escriba un programa para que el Big Ben genere respuestas automáticamente según su estado de ánimo.

Formato de entrada:

La entrada proporciona 24 números enteros en el rango [0, 100] en una línea, que a su vez representan el índice de humor del Big Ben para cada hora de las 24 horas del día.

Luego hay varias líneas, cada línea proporciona un número entero entre [0, 23], que representa el momento en que los internautas le hicieron esta pregunta a Ben Chong. Cuando ocurre un momento ilegal, significa que la entrada ha terminado y no es necesario procesar esta entrada ilegal. Se garantiza que la pregunta se hará al menos una vez.

Formato de salida:

Para cada pregunta, si el índice de estado de ánimo de Ben Chong es superior a 50, envíelo en una línea 心情指数 Yes; de lo contrario, envíelo 心情指数 No.

.

Ideas para resolver problemas:

  1. Importe readlineel módulo y cree un objeto de interfaz: primero readlineintroduzca el módulo y use createInterfacemétodos para crear un objeto de interfaz rl. Este objeto establece el flujo de entrada en entrada estándar.
  2. Leer entrada y almacenar: al escuchar 'line'eventos, la entrada se almacena en una matriz buf.
  3. Analice la entrada y procese la secuencia de números: asigne bufel primer elemento de la matriz a una variable times, sepárelo en una matriz de cadenas separadas por espacios y utilice mapmétodos para convertir cada cadena en un número. Convierta las subcadenas bufa partir del segundo elemento (es decir, la posición con índice 1) hasta el último elemento (incluido el último elemento) de la matriz en números y asígnelos a variables arr. Utilice filterel método para filtrar los números que no cumplen con los criterios (menos de 0 o más de 23) y luego almacene los números restantes en formato arr.
  4. Genere el resultado según sea necesario: itere a través de arrcada número en la matriz, acceda timesa la matriz como un índice y genere si el valor correspondiente al número es mayor que 50; de lo contrario, times[i] + " Yes"genere times[i] + " No".
  5. Resultado de salida: genera la cadena de resultado procesada.

.

Código JavaScript (nodo):

const r = require("readline");
const rl = r.createInterface({
    
    
    input: process.stdin
});
let buf = [];
rl.on('line', (input) => buf.push(input));
rl.on('close', () => {
    
    
    const times = buf[0].split(" ").map(Number);
    const arr = buf.splice(1).map(Number).filter(i => 0 <= i && i <= 23);
    if (arr.length < 1) {
    
    
        return;
    }
    arr.forEach(i => console.log(`${
      
      times[i] > 50 ? times[i] + ` Yes` : times[i] + ` No`}`));
});

.

Análisis de complejidad:

Complejidad del tiempo: O (n)
Complejidad espacial: O (n)

Supongo que te gusta

Origin blog.csdn.net/Mredust/article/details/133519575
Recomendado
Clasificación