【 声明:版权所有,转载请标明出处,请勿用于商业用途。 联系信箱:libin493073668@sina.com】
题目描述
请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。
给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。
测试样例:
"This is nowcoder"
返回:"redocwon si sihT"
思路
应该不少同学也做过这种类型的题了,翻转字符就是折半交换,应该不需要解释什么了
class Reverse
{
public:
string reverseString(string iniString)
{
// write code here
if(iniString=="")
return iniString;
int length = iniString.length();
revese(iniString,0,length-1);
return iniString;
}
void revese(string &str,int start,int end)
{
while(start<end)
{
swap(str[start],str[end]);
start++;
end--;
}
}
};