您的位置:首页 > 职场人生

腾讯经典面试题(字符串以单词为单位逆转输出)

2020-07-22 23:58 591 查看

题目:输入一个字符串,以单词为单位,逆转输出
例:I love you逆转输出后: you love I

题解:
关于字符串的倒置题基本上都可以采用递归的思路,而栈的特性(后进先出)完美契合了题目以单词为单位逆转输出的要求(例如字符串最末尾的单词是最后进栈的,但在输出时,一定是最先出栈的)

class solution {
private:
//栈reverse用于存储倒置后的结果
stack<string>reverse;
void Reverse(string obj)
{

int ptr = 0;
//用空格来区分两个单词,遇到空格时指针停止,标志着找到一个单词
while (ptr!=obj.length()&&obj[ptr]!=' ') ptr++;
//将找到的单词存入栈中
if(ptr!=0)reverse.push(obj.substr(0, ptr));
//如果指针没有遍历完字符串,则递归,找下一个单词
if (ptr+1<obj.length())Reverse(obj.substr(ptr + 1));

}
public:
//返回结果
string Res(string obj)
{
string res;
Reverse(obj);
while (!reverse.empty())
{
res += reverse.top();
res += " ";
reverse.pop();
}
return res;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: