腾讯经典面试题(字符串以单词为单位逆转输出)
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; } };
相关文章推荐
- 经典面试题--字符串按单词逆转
- 经典的字符串操作的题目,左旋转,反序输出所有的单词
- 【面试题】单链表逆转、字符串按单词逆转
- 面试题:按单词逆转字符串(2010/10/09)
- 百度面试题 字符串中单词的逆转,即将单词出现的顺序进行逆转
- 不用任何库函数实现以单词为单位的字符串逆转算法(C#)
- 把字符串以单词为单位逆序输出(指针方法),超详细
- 【我解C语言面试题系列】013 以单词为单位的翻转字符串
- 将字符串按照单词单位逆序排列输出
- 【我解C语言面试题系列】013 以单词为单位的翻转字符串
- 字符串操作,翻转句子中单词的顺序--经典面试题两种解法
- 华为面试题一例 - 逆序输出此单词字符串, 并保留最后的标点
- 以单词为单位倒序输出一个字符串
- 经典面试题-颠倒字符串单词顺序不变
- 以单词为单位倒序输出一个字符串
- 15. Google面试题:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b
- 腾讯面试题--字符串旋转
- 将字符串按照单词完全反转-大公司面试题
- 一个面试题:截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串
- 【剑指offer】6.3知识迁移能力——面试题42:翻转单词顺序VS左旋转字符串