切分单词列表并整体 reversed,再用单个空格连接输出。
OJ: noi_openjudge
题目 ID: ch0107-28
难度:入门
标签:字符串数组python
日期: 2026-07-30 23:01
题意
将由单个空格分隔的英文单词顺序完全倒排。
思路
split() 得到单词列表,reversed 反向遍历,join 负责重新插入单个空格。
代码
Python代码
python
print(" ".join(reversed(input().split())))C++代码
cpp
#include <cstdio>
#include <cstring>
char str[5000];
int idx = 0;
char tmp[105];
int flag = 1;
int next_word(){
while(1){
if(str[flag] != ' ' )
break;
else {
printf(" ");
}
flag++;
}
if( flag == idx+1){
return -1;
}
int cnt = 0;
while(1) {
if( str[flag] == ' ' || flag == idx+1){
tmp[cnt] = '\0';
return 0;
}
else {
tmp[cnt++] = str[flag];
flag++;
}
}
return 0;
}
int main(){
char t;
while ( scanf("%c",&t)!=EOF) {
if ( t == '\n' || t == '\r')
break;
str[++idx] = t;
}
int len = strlen(str+1);
int mid = len /2;
int i;
for(i=1;i<=mid;i++){
t = str[i];
str[i] = str[len-i+1];
str[len-i+1] = t;
}
while(1){
if( next_word() == -1){
break;
}
int len = strlen(tmp);
int i;
for (i=len-1;i>=0;i--){
printf("%c",tmp[i]);
}
}
return 0;
}复杂度
时间和输出空间复杂度均为
总结
单词顺序倒排与单词内部字符反转是两种不同操作。