1 条题解
-
0
#include<bits/stdc++.h> using namespace std; int main() { string s; getline(cin, s); // [1] 读取整行输入(包含空格,保留原空格位置) int n = s.size(); // [2] 获取字符串总长度 string res = ""; // [3] 初始化存储结果的字符串 // [4] 核心for循环:遍历整个字符串,逐单词处理 for (int i = 0; i < n; i++) { if (s[i] == ' ') { // 遇到空格,直接保留到结果 res += ' '; } else { // 遇到单词字符,处理当前单词的翻转 int j = i; // 标记当前单词的起始位置,向后找单词结束位置 // 嵌套for循环:找到当前单词的最后一个字符位置(下一个空格/字符串末尾) for (; j < n && s[j] != ' '; j++); // 倒序遍历单词字符,添加到结果(实现单词翻转) for (int k = j - 1; k >= i; k--) { res += s[k]; } i = j - 1; // 跳过当前单词已处理的字符,避免重复遍历 } } cout << res; // [5] 输出最终结果 return 0; }
- 1
信息
- ID
- 132
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者