1 条题解

  • 0
    @ 2025-8-24 21:07:27

    自动搬运

    查看原文

    来自洛谷,原作者为

    avatar 宝硕
    即使是沉重的过去,也要接受它再继续向前迈进。

    搬运于2025-08-24 21:07:26,当前版本为作者最后更新于2021-07-13 10:29:41,作者可能在搬运后再次修改,您可在原文处查看最新版

    自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多

    以下是正文


    本文提供以下几种语言的题解:C++, NodeJS 。

    题面

    参见 B2120 单词的长度

    C++ 题解

    使用 C++ STL 中的 string 库即可,参见 std::string - cppreference.com

    引入 string 库的方法:#include <string> ,此处需要注意的是应避免与 <cstring><string.h> 这两个文件名混淆。

    声明 string 字符串的方法:string s;

    每次使用 cin >> s; 读入后输出 s.size(); 就是该单词的长度。

    关于逗号:可以定义一个 bool 类型的 flag 变量记录是否为第一次输出,如果是第一次则不输出 , ,其他情况均输出 ,

    代码如下:

    #include <bits/stdc++.h>
    
    using namespace std;
    
    int main() {
        string s;
        bool flag = true;
        while (cin >> s) {
            if (flag) {
                flag = false;
                cout << s.size();
            } else {
                cout << ',' << s.size();
            }
        }
        return 0;
    }
    

    NodeJS 题解

    先使用 fs.readFileSync(0) 从标准输入读入数据。

    读入后使用 toString() 方法将其转换为 String 类型,并使用 replace() 方法去除多余空格。

    之后使用 split() 方法将其分割成一个数组。

    统计循环遍历 str 数组,并将对应单词的 length 插入到 ans 数组末尾。

    输出时使用 join() 方法在每个单词的长度之间插入一个英文逗号。

    代码如下:

    const fs = require('fs')
    
    let str = fs.readFileSync(0).toString().replace(/\s+/g, ' ').split(' ');
    let ans = []
    
    str.forEach(word => {
        ans.push(word.length);
    });
    
    process.stdout.write(ans.join(','));
    

    提交记录:R53204709


    • Update1 at 2021/07/13: 增加了说明。
    • Update2 at 2021/07/15: 增加了 NodeJS 语言版本题解。

    个人主页\large\textbf{个人主页} · 个人博客\textbf{个人博客} · 做题记录\textbf{做题记录}

    • 1

    信息

    ID
    6977
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    1
    已通过
    1
    上传者