前言
试了好几种方法,郁闷死了 #(喷)
题目
7-20 说反话-加强版 (20分)
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。
输出格式:
每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。
输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
处理方案
1.超大二维数组,每个一维子数组存储一个单词,倒着输出。(部分超时,部分格式错误,部分正确,我看着格式没毛病啊 #(怒) )
2.递归(部分段错误,格式错误,这格式真不好处理,搞了半天放弃了 #(受虐滑稽) )
3.超大一维数组,倒着输出(处理上麻烦点, 但还是比较容易实现,全部正确 #(太开心) )
超大一维数组处理
1.让一个指针变量指向字符串最后一位
2.向前扫描,去掉结尾的空格
3.向前扫描,遇到 前一个字符为空格 就输出 当前地址的单词
4.重复 2 & 3 直到p
指向首地址
字符串的可能情况:
N个空格-单词-N个空格-单词-N个空格
N个空格-单词-N个空格-单词-N个空格