题解 | #翻转字符串(1)#

翻转字符串(1)

http://www.nowcoder.com/practice/972117dd8f334076a5df6a68b0a8f3dd

#include<bits/stdc++.h>
using namespace std;
int main(){
    string str;
    getline(cin,str);
    int start=0,end=0;
    for(int i=0;i<str.size();i++){
        if(str[i]!=' ')
            end++;
        else{//遇到空格了将start到end的单词逆序
            end--;
            while(start<=end){
                char temp=str[start];
                str[start]=str[end];
                str[end]=temp;
                start++;
                end--;
            }
            //然后更新start和end
            start=i+1;
            end=i+1;
        }
    }
    //由于每次都是遇到空格才进行逆序单词所以最后一个单词会漏掉
    end--;
    while(start<=end){
         char temp=str[start];
                str[start]=str[end];
                str[end]=temp;
                start++;
                end--;
    }
    cout<<str<<endl;
    return 0;
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务