Pintia题解——7-15 统计数字字符和空格

7-15 统计数字字符和空格

原题:

本题要求编写程序,输入一行字符,统计其中数字字符、空格和其他字符的个数。建议使用switch语句编写。

输入格式:

输入在一行中给出若干字符,最后一个回车表示输入结束,不算在内。

输出格式:

在一行内按照

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

的格式输出。请注意,等号的左右各有一个空格,逗号后有一个空格。

.

解题思路:

  1. 引入readline模块并创建接口对象:首先将readline模块引入,并使用createInterface方法创建一个接口对象rl。该对象设置了输入流为标准输入。
  2. 读取输入并存储:通过监听'line'事件,将输入存储在数组buf中。
  3. 统计空格、数字和其他字符的数量:初始化blankdigitother三个变量分别为0。使用for循环遍历字符串text的每个字符,对于每个字符,判断其属于哪一类(空格、数字或其他字符),并将相应的变量+1。
  4. 输出统计结果:使用模板字符串将结果输出,格式为"blank = x, digit = y, other = z",其中x、y、z分别为第3步中统计得到的空格、数字和其他字符的数量

.

JavaScript(node)代码:

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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mredust

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值