栈实现对字符串的翻转 C++
翻转单词顺序列
http://www.nowcoder.com/questionTerminal/3194a4f4cf814f63919d0790578d51f3
string ReverseSentence(string str) {
if(str.empty())
{
return str;
}
stack<string>sta;
string temp = "";
int len = str.size() - 1;
for(int i = 0;i <= len;i++)
{
string s;//局部变量 临时存储非空格字符串
while(!isblank(str[i]) && i <=len)
{
s += str[i];
i++;
}
sta.push(s);//将非空格字符串视为一个元素压栈
if(isblank(str[i]))//判断是否为空 若不为空则说明已执行到str末尾
{//将空格视为一个元素压栈
string str1 = " ";//str[i]为char 存在于string 的转换问题 为避免麻烦直接使用空格
sta.push(str1);
}
}
while(!sta.empty())
{ //弹出,
temp += sta.top();
sta.pop();
}
return temp;
}
SHEIN希音公司福利 242人发布