给定输入的字符数组
,逐词翻转数组。单词被定义为不包含空格的字符串.
输入字符数组不包含前导或尾部空格,单词总是用单个空格分隔。
样例
样例1
输入: s = "the sky is blue"
输出: "blue is sky the"
样例2
输入: "a b c"
输出: "c b a"
挑战
你能在不分配额外空间的情况下原地解决这个问题吗?
class Solution {
public:
/**
* @param str: a string
* @return: return a string
*/
string reverseWords(string &A) {
// write your code here
string ret = "";
string tmp = "";
for(int i = 0; i < A.size(); i++)
{
if(A[i] == ' ')
{
//mymap1[tmp]++;
ret = ' ' + tmp + ret;
tmp = "";
}
else
{
tmp = tmp + A[i];
if(i == A.size() - 1)
{
//mymap1[tmp]++;
ret = ' ' + tmp + ret;
}
}
}
if(ret[0] == ' ')
{
ret.erase(0,1);
}
return ret;
}
};