剑指offer——面试题42:翻转单词序列
来源:互联网 发布:ie加载项里面没有java 编辑:程序博客网 时间:2024/06/15 10:05
题目:牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
分析:这道题题目描述有非常大的问题!!!《剑指offer》书上描述是对的,如果给出 "I am a student. ",注意,最后一个单词后面有个空格,否则,程序怎么改都是通过 0.00%,但是输出结果是相同的,只能说,牛客网坑人啊!
我的代码:
class Solution {public: string ReserveWord(string str1) { string word; string reverseSentence; for (int i = 0; i < str1.size(); i++){while (str1[i] != ' ' && str1[i] != NULL) // 必须加一个 != NULL,否则会多输出一个随机值{word += str1[i];cout << i << endl;cout << word << endl;i++;if (str1[i] == ' '){//cout << "跳出来一次" << endl;break; // 第一次跳出break,word = .tneduts} }// 处理word ,将其颠倒,然后清空for (int i = word.size() - 1; i >= 0; --i){reverseSentence += word[i];}reverseSentence += ' '; // 补充一个空格word.erase();} return reverseSentence; } string ReverseSentence(string str) { string tempstr; string reverse_str; for(int i = str.size() -1; i >= 0; --i) { tempstr += str[i]; // 将整个字符串完全颠倒。如 i am student. ->.tneduts ma i } reverse_str = ReserveWord(tempstr); return reverse_str; }};
如果使用 STL reserve() 函数,更简单了
class Solution {public: string ReverseSentence(string str) { int size = str.size(); reverse(str.begin(), str.end()); // 注意:翻转后的第一个字符是空格 int start = 0; for(int i = 0; i < size; ++i) { if(str[i] == ' ') { reverse(str.begin()+start, str.begin()+i); start = i+1; // 每个单词的第一个下标 } if(i == size-1) // 翻转最后一个单词 reverse(str.begin()+start, str.end()); } return str; }};
阅读全文
2 0
- 剑指offer——面试题42:翻转单词序列
- 剑指offer——面试题42:翻转单词顺序VS左旋转字符串
- 剑指offer 面试题42—翻转单词顺序VS左旋转字符串
- 《剑指Offer》面试题:翻转单词顺序
- 剑指Offer----面试题42(1):翻转单词顺序
- 剑指offer 面试题42 翻转单词顺序
- 面试题42—翻转单词顺序
- 【剑指offer】6.3知识迁移能力——面试题42:翻转单词顺序VS左旋转字符串
- 剑指offer——44.翻转单词顺序序列
- (剑指Offer)面试题45:翻转单词顺序列
- 【剑指offer】面试题58(1):翻转单词顺序
- 剑指offer — 翻转单词
- 面试题42. 翻转单词序列
- 剑指offer面试题42翻转单词顺序VS左旋字符串
- [剑指offer][面试题42]翻转单词顺序 VS 左旋转字符串
- 【剑指offer】面试题42:单词翻转顺序&左右旋转字符串
- [剑指offer]面试题42:翻转单词顺序,左旋转字符串
- 剑指offer 面试题42 翻转单词顺序 | 左旋转字符串
- UVA 532--Dungeon Master
- 从A到B再到C
- 手动释放(dispose)对象空间和跟踪引用计数
- 爬虫1.1爬取斗图啦图片(关于open函数和urlretrieve函数)
- Python用户推荐系统曼哈顿算法实现
- 剑指offer——面试题42:翻转单词序列
- 如何把自媒体平台文章同步到WordPress等网站
- 在SpringBoot项目中添加logback的MDC
- Android的manifest中Application属性supportsRtl的作用
- 2017/12/14 《心的开始,新的启航》
- jmeter上传文件
- 集成Android 科大讯飞免费在线语音合成播报功能(附源码)
- Hadoop2.9.0安装与配置(一)Linux centos7系统的安装与配置
- 【记录】memcpy后报错:segmentation fault