码迷,mamicode.com
首页 > 其他好文 > 详细

翻转单词顺序列

时间:2018-02-01 14:52:34      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:body   str   --   solution   public   turn   desc   tle   student   

题目描述

牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
 
思路:先将句子整体翻转,在按单词分别翻转
 1 class Solution {
 2 public:
 3     void reverseStr(string &str, int left, int right)
 4     {
 5         while(left<right)
 6         {
 7             char tmp=str[left];
 8             str[left]=str[right];
 9             str[right]=tmp;
10             ++left;
11             --right;
12         }
13     }
14     string ReverseSentence(string str) {
15         if(str.size()==0)return str;
16         reverseStr(str, 0, str.size()-1);
17         for(int i=0; i<str.size(); ++i)
18         {
19             if(str[i]!= )
20             {
21                 for(int j=i; j<=str.size(); ++j)
22                 {
23                     if(str[j]==  || str[j]==\0)
24                     {
25                         reverseStr(str, i, j-1);
26                         i=j;
27                         break;
28                     }
29                 }
30             }
31         }
32         return str;
33     }
34 };

 

翻转单词顺序列

标签:body   str   --   solution   public   turn   desc   tle   student   

原文地址:https://www.cnblogs.com/jeysin/p/8398386.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!