1009. 说反话 (20)
时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。
输出格式:每个测试用例的输出占一行,输出倒序后的句子。
输入样例:Hello World Here I Come输出样例:
Come I Here World Hello
刚看到这题时不知道怎么写,先用python应付过去了
ste = raw_input() print ' '.join(raw_ste.split(' ')[::-1])
正好没课,用c的二维数组写,感觉写的挺容易理解的
#include<stdio.h> /*
因为百度搜了比较正常的单词最长45
pneumonoultramicroscopicsilicovolcanoconiosis
*/ int main(){ char ste[80][45]; int i=0,j=0; char c; while((c = getchar()) != ' '){ if(c == ' '){ i++; j=0; continue; } ste[i][j++] = c; } while(i >= 0){ printf("%s",ste[i--]); if(i != -1) printf(" "); } return 0; }
输入回车结束输入,当输入为空格时 i +1,表示这个单词记录完成,开始记录下一个单词,continue防止空格被记录到第i个单词的后边,结束输入后总共有i+1个单词,最后一个单词下标为i,倒序出即可。(注意:最后一个单词输出后 i = -1)
提交后正确。
续:因为总长度不超过80,而我没有把空格计入,最长单词为45,说明可以省一个空间->ste[79][45](继续思考更方便的方法)。