题解 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
- Update1 at 2021/07/13: 增加了说明。
- Update2 at 2021/07/15: 增加了 NodeJS 语言版本题解。