《程序员面试金典》原串翻转

【 声明:版权所有,转载请标明出处,请勿用于商业用途。  联系信箱:[email protected]


题目链接:http://www.nowcoder.com/practice/2442435405fa432b99b8ec1cb0315902?rp=1&ru=/ta/cracking-the-coding-interview&qru=/ta/cracking-the-coding-interview/question-ranking


题目描述
请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。
给定一个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--;
			}
		}
};


你可能感兴趣的:(程序员面试金典,牛客网)