一道按单词逆转字符串的面试题

/*
python的string是不可变的,故无法进行in-place的反转;因而写一段C++代码作为演示
*/

//可以单独放入一个头文件
#include <algorithm>

using std::reverse;
using std::find;

template<class String>
String& reverse_word(String* str){
    typename String::iterator i=str->begin(),pre=i,end=str->end();  
    while(i!=end){
        i=find(pre,end,' ');
        reverse(pre,i);
        pre=i+1;
    }
    reverse(pre,i);
    reverse(str->begin(),str->end());
    return *str;
}

//主程序
#include <iostream>
#include <string>
using namespace std;
int main(){
    string c="idea good a have";//idea good a have

    do{
        cout<<reverse_word(&c)<<"\n\nPlease Input:";
    }while(getline(cin,c));

    return 0;
}

你可能感兴趣的:(C++,c,python,面试,idea)