首页 > 代码库 > 将字符串反向

将字符串反向

小米的一道笔试题

输入“hello xiao mi”,输出“mi xiao hello”

很基础的一道题,个人觉得不好做的地方在于,如何输入带空格的字符串;

substr中,第二个参数表示个数。

下面的代码不知道时间上能不能通过。

void reverse(const string& line){    string result = " ";    int i = 0;    int k = 0;    for (int j = 0; j < line.size(); j++)    {        if (line[j] ==  )        {            k++;            if (k == 1)//如果是第一个串,后面不要加空格                result.insert(0, line.substr(i, j));            else            {   //否则后面加空格                result.insert(0, line.substr(i, j - i + 1));            }            i = j + 1;        }        if (j == line.size() - 1)        {            //最后一个需要补空格            result.insert(0, line.substr(i, j - i + 1) + " ");        }    }    cout << result;}int main(){    string line;    while (getline(cin,line))    {        reverse(line);        cout << endl;    }    return 0;}

 

将字符串反向