XM5. 句子反转
描述
给定一个句子(只包含字母和空格), 将句子中的单词位置反转,单词用空格分割, 单词之间只有一个空格,前后没有空格。 比如: (1) “hello xiao mi”-> “mi xiao hello”输入描述
输入数据有多组,每组占一行,包含一个句子(句子长度小于1000个字符)输出描述
对于每个测试示例,要求输出句子中单词反转后形成的句子示例1
输入:
hello xiao mi
输出:
mi xiao hello
C 解法, 执行用时: 1ms, 内存消耗: 224KB, 提交时间: 2018-08-07
#include <stdio.h> #include <string.h> main() { char a[1000]; int len,i,j; gets(a); len=strlen(a); for(i=len-1;i>=0;i--) { if(a[i]==' ') { for(j=i+1;a[j]!='\0'&&a[j]!=' ';j++) printf("%c",a[j]); printf(" "); } } i=0; while(a[i]!=' ') i++; for(j=0;j<i;j++) printf("%c",a[j]); }
Pascal 解法, 执行用时: 1ms, 内存消耗: 232KB, 提交时间: 2018-09-16
var st:ansistring; i,l,s:longint; word:array[1..1000] of ansistring; begin readln(st); l:=length(st); s:=1; for i:=1 to l do if st[i]=' ' then inc(s) else word[s]:=word[s]+st[i]; for i:=s downto 2 do write(word[i],' '); writeln(word[1]); end.
C 解法, 执行用时: 1ms, 内存消耗: 352KB, 提交时间: 2018-09-30
#include <stdio.h> int main() { int num, i, j; char *input = malloc(sizeof(char)*500); char output[100][20]; gets(input); i = 0; num = 0; while(input[i] != '\0') { j = 0; while(input[i] != ' ' && input[i] != '\0') { output[num][j] = input[i]; j++; i++; } output[num][j] = '\0'; i++; //skip ' ' num++; } for( num=num-1; num >= 0; num--) { printf("%s", output[num]); if(num != 0) printf(" "); } return 0; }
C 解法, 执行用时: 1ms, 内存消耗: 352KB, 提交时间: 2018-08-02
#include <stdio.h> #include <string.h> main() { char a[1000]; int len,i,j; gets(a); len=strlen(a); for(i=len-1;i>=0;i--) { if(a[i]==' ') { for(j=i+1;a[j]!='\0'&&a[j]!=' ';j++) printf("%c",a[j]); printf(" "); } } i=0; while(a[i]!=' ') i++; for(j=0;j<i;j++) printf("%c",a[j]); }
C 解法, 执行用时: 1ms, 内存消耗: 368KB, 提交时间: 2020-12-16
/*#include<stdio.h> #include<string.h> int main(void) { char a[1000]; int len,i,j; gets(a); len=strlen(a); for(int i=len-1;i>=0;i--) { if(a[i]==' ') { for(int j=i+1;a[j]!='\0'&&a[j]!=' ';j++) printf("%c",a[j]); printf(" "); } } i=0; while(a[i]!=' ') i++; for(j=0;j<i;j++) printf("%c",a[j]); return 0; }*/ #include <stdio.h> #include <string.h> main() { char a[1000]; int len,i,j; gets(a); len=strlen(a); for(i=len-1;i>=0;i--) { if(a[i]==' ') { for(j=i+1;a[j]!='\0'&&a[j]!=' ';j++) printf("%c",a[j]); printf(" "); } } i=0; while(a[i]!=' ') i++; for(j=0;j<i;j++) printf("%c",a[j]); }