华为OD机试 2025A卷题库疯狂收录中,刷题点这里
专栏导读
本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。
刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。
一、题目描述
计算字符串最后一个单词的长度,单词以空格隔开,字符串长度小于5000。(注:字符串末尾不以空格为结尾)。
二、输入描述
输入一行,代表要计算的字符串,非空,长度小于5000。
三、输出描述
输出一个整数,表示输入字符串最后一个单词的长度。
四、测试用例
测试用例1
1、输入
Hello World
2、输出
5
3、说明
最后一个单词 “World” 长度为 5。
测试用例2
1、输入
fly me to the moon
2、输出
4
3、说明
最后一个单词 “moon” 长度为 4。
五、解题思路
- 读取输入的字符串;
- 初始化一个变量 len 用于记录最后一个单词的长度,初始值为 0;
- 遍历字符串的每个字符:
- 如果当前字符是空格,则将 len 重置为 0;
- 如果当前字符不是空格,则将 len 增加 1。
- 输出 len 的值。
六、Python算法源码
# -*- coding: utf-8 -*-
# 定义主函数
def main():
# 使用 input() 读取一行输入,并使用 strip() 去除可能的首尾空格
s = input().strip()
length = 0 # 初始化计数器,用于计算最后一个单词的长度
# 遍历字符串中每个字符
for ch in s:
if ch == ' ': # 如果当前字符为空格,则说明前面的单词结束,重置计数器
length = 0
else:
length += 1 # 否则,计数器累加1
# 输出最后一个单词的长度
print(length)
# 程序入口
if __name__ == '__main__':
main()
七、JavaScript算法源码
/**
* 主函数:读取输入并计算字符串最后一个单词的长度
*/
function main() {
// 引入 Node.js 的 readline 模块,用于读取标准输入
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin, // 标准输入
output: process.stdout // 标准输出
});
// 监听输入行事件
rl.on('line', (line) => {
let length = 0; // 初始化计数器
// 遍历输入字符串的每个字符
for (let i = 0; i < line.length; i++) {
if (line[i] === ' ') { // 如果当前字符为空格,重置计数器
length = 0;
} else {
length++; // 否则,计数器累加1
}
}
// 输出最后一个单词的长度
console.log(length);
rl.close(); // 关闭 readline 接口
});
}
// 调用主函数
main();
八、C算法源码
#include <stdio.h>
#include <string.h>
// 主函数
int main() {
char s[5001]; // 定义一个字符数组,用于存储输入字符串(长度小于5000,加1用于存储结束符)
// 使用 fgets 读取一整行输入
if (fgets(s, sizeof(s), stdin) != NULL) {
int length = 0; // 初始化计数器,记录最后一个单词的长度
int n = strlen(s); // 获取字符串的长度
// 如果最后一个字符是换行符,则将其替换为字符串结束符
if (n > 0 && s[n - 1] == '\n') {
s[n - 1] = '\0';
}
// 遍历字符串中每个字符
for (int i = 0; s[i] != '\0'; i++) {
if (s[i] == ' ') { // 如果遇到空格,则重置计数器
length = 0;
} else {
length++; // 否则,计数器累加1
}
}
// 输出最后一个单词的长度
printf("%d", length);
}
return 0; // 程序结束
}
九、C++算法源码
#include <iostream>
#include <string>
using namespace std;
int main() {
string s; // 定义字符串变量,用于存储输入的整行数据
getline(cin, s); // 使用 getline 读取一整行输入
int length = 0; // 初始化计数器,记录最后一个单词的长度
// 遍历字符串中的每个字符
for (char ch : s) {
if (ch == ' ') { // 如果当前字符为空格,则重置计数器
length = 0;
} else {
length++; // 否则,计数器累加1
}
}
// 输出最后一个单词的长度
cout << length;
return 0; // 程序结束
}
🏆下一篇:华为OD机试真题 - 简易内存池(Python/JS/C/C++ 2025 A卷 200分)
🏆本文收录于,华为OD机试真题(Python/JS/C/C++)
刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。