您的位置:首页 > 其它

leetcode Reverse Words in a String

2015-05-09 09:57 323 查看
完整代码 VS2010

// 12.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#include <iostream>

using namespace std;

class Solution {

public:

void reverseWords(string &s) {

int i, start, end, len;

i=0;

while(i<s.length()&&s[i]==' ')

i++;

start=i;

i=s.length()-1;

while(i>=0&&s[i]==' ')

i--;

end=i;

for(i=start,len=0; i<=end; i++){

if(s[i]==' '&&s[i-1]==' ')

continue;

s[len++]=s[i];

}

s.erase(s.begin()+len,s.end());

reverse(s.begin(),s.end());

for(i=0,start=0; i<s.length(); i++){

if(s[i]==' '){

reverse(s.begin()+start,s.begin()+i);

start=i+1;

}

}

reverse(s.begin()+start,s.end());

}

};

int _tmain(int argc, _TCHAR* argv[])

{

string s(" the sky is blue ");

Solution solution;

solution.reverseWords(s);

for(int i=0; i<s.length(); i++)

cout<<s[i];

cout<<endl;

return 0;

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: