Решение задачи Пинтия - 7-15 статистических символов и пробелов

7-15 Подсчет цифровых символов и пробелов

Оригинальное название:

Этот вопрос требует написания программы для ввода строки символов и подсчета количества в ней числовых символов, пробелов и других символов. Для записи рекомендуется использовать операторы переключения.

Формат ввода:

Ввод дает количество символов в строке. Последний возврат каретки указывает на конец ввода и не учитывается.

Выходной формат:

в одну строку согласно

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

формат вывода. Обратите внимание, что слева и справа от знака равенства и пробела после запятой стоит пробел.

.

Идеи решения проблем:

  1. Импортируйте readlineмодуль и создайте объект интерфейса: сначала readlineпредставьте модуль и используйте createInterfaceметоды для создания объекта интерфейса rl. Этот объект устанавливает входной поток на стандартный ввод.
  2. Чтение ввода и сохранение: при прослушивании 'line'событий ввод сохраняется в массиве buf.
  3. Подсчитайте количество пробелов, цифр и других символов: инициализируйте и blankтри переменные равны 0 соответственно. Используйте цикл для обхода каждого символа строки. Для каждого символа определите, к какой категории он принадлежит (пробел, число или другой символ), и добавьте +1 к соответствующей переменной.digitotherfortext
  4. Вывод статистических результатов: используйте строку шаблона для вывода результатов в формате «пробел = x, цифра = y, другое = z», где x, y и z — пробелы, цифры и другие символы, подсчитанные на шаге 3. соответственно количество

.

Код JavaScript (узел):

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}`);

});

.

Анализ сложности:

Временная сложность: O(n)
Пространственная сложность: O(1)

おすすめ

転載: blog.csdn.net/Mredust/article/details/133519335