题解 B2120 【单词的长度】

· · 题解

本文提供以下几种语言的题解: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

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