递归 单词翻转 (Coursera 程序设计与算法 专项课程2 C程序设计进阶 李戈;OpenJudge)
2017-08-13 20:22
417 查看
编程题#1:单词翻转
来源: POJ (http://pkuic.openjudge.cn/hw07/1/)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。所谓单词指的是所有不包含空格的连续的字符。
这道题请用cin.getline输入一行后再逐个单词递归处理。
输出
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
样例输入
hello world.
样例输出
olleh .dlrow
其它解法参考:
http://blog.csdn.net/panda711/article/details/50625666
http://blog.csdn.net/abc8730866/article/details/56896257
来源: POJ (http://pkuic.openjudge.cn/hw07/1/)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
输入一个句子(一行),将句子中的每一个单词翻转后输出。
输入
只有一行,为一个字符串,不超过500个字符。单词之间以空格隔开。所谓单词指的是所有不包含空格的连续的字符。
这道题请用cin.getline输入一行后再逐个单词递归处理。
输出
翻转每一个单词后的字符串,单词之间的空格需与原文一致。
样例输入
hello world.
样例输出
olleh .dlrow
#include<iostream> #include<cstring> using namespace std; char words[501]; int ConstI = 0, i = 0; int overturn(); int main(){ cin.getline(words, 501); int n = strlen(words); for (i = 1; i < n + 1; i++){ if (words[i-1] != ' ' && words[i] == ' '){ overturn(); ConstI++; cout << ' '; } else if (words[i - 1] == ' ' && words[i] == ' '){ ConstI++; cout << ' '; } else if (words[i] == '\0') overturn(); } cout << endl; return 0; } int overturn(){ char c = words[ConstI]; ConstI++; if (ConstI < i){ overturn(); } cout << c; return 0; }
其它解法参考:
http://blog.csdn.net/panda711/article/details/50625666
http://blog.csdn.net/abc8730866/article/details/56896257
相关文章推荐
- 递归 排队游戏 (Coursera 程序设计与算法 专项课程2 C程序设计进阶 李戈;OpenJudge)
- 文字排版 (Coursera 程序设计与算法 专项课程2 C程序设计进阶 李戈;OpenJudge)
- 分配病房 (Coursera 程序设计与算法 专项课程2 C程序设计进阶 李戈;OpenJudge)
- 计算矩阵边缘元素之和 (Coursera 程序设计与算法 专项课程2 C程序设计进阶 李戈;OpenJudge)
- 配对碱基链 (Coursera 程序设计与算法 专项课程2 C程序设计进阶 李戈;OpenJudge)
- 二维数组右上左下遍历 (Coursera 程序设计与算法 专项课程2 C程序设计进阶 李戈;OpenJudge)
- 递归 编程题#2: 文件结构“图”(Coursera 程序设计与算法 专项课程4 算法基础 郭炜、刘家瑛;switch case后接多行语句)
- 递归 编程题#1: 完美覆盖(Coursera 程序设计与算法 专项课程4 算法基础 郭炜、刘家瑛;Fibonacci数列)
- 期末考试 编程题#1:输出200(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- 多态与虚函数 编程题#1(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- 标准模板库 STL-2 编程题#6: priority queue(Coursera 程序设计与算法 专项课程3;容器中自定义排序顺序 MyCompare,判断质数)
- 期末考试 编程题#8:计算整数k(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;进制转换)
- 标准模板库 STL-1 编程题#1(Coursera 程序设计与算法 专项课程3;用法:迭代器 ostream_iterator,容器 set)
- * 深度优先搜索(1) 编程题#1: 棋盘问题(Coursera 程序设计与算法 专项课程4 算法基础;递归+剪枝!)
- 多态与虚函数 编程题#2(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- 运算符重载 编程题#2(Coursera 程序设计与算法 专项课程3 C++程序设计;重载:& operator-)
- 类和对象 编程题#2(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- 标准模板库 STL-2 编程题#1(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;vector(sort)中重载 <)
- 期末考试 编程题#9:人群的排序和分类(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;类的继承)
- 文件操作与模板 编程题#3: 整数的输出格式(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)