Solución del problema de Pintia: 7-15 caracteres y espacios estadísticos

7-15 Contar caracteres numéricos y espacios

Titulo original:

Esta pregunta requiere escribir un programa para ingresar una línea de caracteres y contar la cantidad de caracteres numéricos, espacios y otros caracteres que contiene. Se recomienda utilizar declaraciones de cambio para escribir.

Formato de entrada:

La entrada proporciona una cantidad de caracteres en una línea. El último retorno de carro indica el final de la entrada y no se cuenta.

Formato de salida:

en una línea según

blank = 空格个数, digit = 数字字符个数, other = 其他字符个数

formato de salida. Tenga en cuenta que hay un espacio a la izquierda y a la derecha del signo igual y un espacio después de la coma.

.

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. Cuente el número de espacios, números y otros caracteres: inicializar y blanklas tres variables son 0 respectivamente. Utilice un bucle para recorrer cada carácter de la cadena. Para cada carácter, determine a qué categoría pertenece (espacio, número u otro carácter) y haga +1 en la variable correspondiente.digitotherfortext
  4. Generar resultados estadísticos: use una cadena de plantilla para generar los resultados en el formato "en blanco = x, dígito = y, otro = z", donde x, y y z son los espacios en blanco, dígitos y otros caracteres contados en el paso 3. respectivamente cantidad

.

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 text = buf[0];

    let blank = 0, digit = 0, other = 0;

    for (let i = 0; i < text.length; i++) {
    
    
        const char = text.charAt(i);
        if (/[a-zA-z]/.test(char)) {
    
    
            other++;
        } else if (/[0-9]/.test(char)) {
    
    
            digit++;
        } else if (char === ' ') {
    
    
            blank++;
        } else {
    
    
            other++;
        }
    }

    console.log(`blank = ${
      
      blank}, digit = ${
      
      digit}, other = ${
      
      other}`);

});

.

Análisis de complejidad:

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

Supongo que te gusta

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