剑指offer44:翻转单词顺序列
2019-08-29 08:55:35来源:博客园 阅读 ()
剑指offer44:翻转单词顺序列
1 题目描述
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?2 思路和方法
先将字符串整体翻转,再一次翻转每个单词。 字符串整体翻转:.tneduts a ma i,
3 C++核心代码
1 class Solution { 2 public: 3 string ReverseSentence(string str) { 4 int len = str.size(); 5 int start = 0; 6 for(int i = 0; i < len; i ++) 7 { 8 if(str[i] == ' ') 9 { 10 reverse(str.begin()+start, str.begin()+i); 11 start = i+1; 12 } 13 if(i == len-1) 14 { 15 reverse(str.begin()+start, str.end()); 16 } 17 } 18 reverse(str.begin(), str.end()); 19 return str; 20 } 21 };View Code
1 class Solution { 2 public: 3 string ReverseSentence(string str) { 4 int len = str.length(); 5 string &temp = str; 6 reserve(temp,0,len-1); 7 int s = -1; 8 for(int i=0;i<len;i++){ 9 if(str[i] == ' '){ 10 reserve(temp,s+1,i-1); 11 s = i; 12 } 13 } 14 reserve(temp,s+1,len-1); 15 return str; 16 } 17 void reserve(string &s,int start,int end){ 18 char temp; 19 while(start < end){ 20 temp = s[start]; 21 s[start] = s[end]; 22 s[end] = temp; 23 start++; 24 end--; 25 } 26 } 27 };View Code
参考资料
https://blog.csdn.net/weixin_40271182/article/details/84281680
原文链接:https://www.cnblogs.com/wxwhnu/p/11423010.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:STL--标准模板库--简要概述
- 朋友(翻转树边权值比赛)——依然是思维 2020-04-12
- 翻转字符串里面的单词 2020-04-10
- 剑指offer笔记面试题1----赋值运算符函数 2019-10-18
- 剑指offer65:矩阵中的路径(二维数组,二分查找) 2019-09-02
- 剑指offer62:二叉搜索树的第k个结点,二叉搜索树【左边的元 2019-08-31
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash