编程题:将一句话里的单词进行倒置
2016-04-03 15:21
405 查看
腾讯2016年4月2号暑假实习移动开发岗的笔试题,编程题第四题大概题目是:
将一句话中的单词进行倒置(单词之间倒转,单词本身不倒置),标点符号不倒置。
比如一句话“I come from China.”,倒置后变成“China. from come I”。
C++的参考代码如下:
方法一:
方法二:(用stack)
运行结果:
将一句话中的单词进行倒置(单词之间倒转,单词本身不倒置),标点符号不倒置。
比如一句话“I come from China.”,倒置后变成“China. from come I”。
C++的参考代码如下:
方法一:
#include <iostream> #include <string> using namespace std; void reverseStr(string &s,int begin,int end){ while (begin < end) { char temp = s[begin]; s[begin] = s[end]; s[end] = temp; begin++; end--; } } int main(){ string s; while (getline(cin,s)) { int length = (int)s.length(); reverseStr(s,0,length-1); //先将句子按字符反转 int j = 0; for (int i=0; i<length; i++) { if (s[i]==' ') { reverseStr(s,j,i-1); //再将句子的单词按字符反转 j=i+1; } } cout<<s<<endl; } return 0; }
方法二:(用stack)
#include<iostream> #include<stack> #include<string> #include<sstream> using namespace std; int main(void) { stack<string> sstack; string line, word; getline(cin, line); istringstream stream(line);//字符输入流 while (stream >> word) { sstack.push(word); } while (!sstack.empty()) { cout << sstack.top() << " "; sstack.pop(); } cout << endl; return 0; }
运行结果:
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- c++ primer 第五版 笔记前言
- share_ptr的几个注意点
- Lua中调用C++函数示例
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- C++联合体转换成C#结构的实现方法
- C++高级程序员成长之路
- C++编写简单的打靶游戏
- C++ 自定义控件的移植问题
- C++变位词问题分析
- C/C++数据对齐详细解析
- C++基于栈实现铁轨问题
- C++中引用的使用总结
- 使用Lua来扩展C++程序的方法
- C++中调用Lua函数实例
- Lua和C++的通信流程代码实例
- C与C++之间相互调用实例方法讲解
- 解析C++中派生的概念以及派生类成员的访问属性