题目描述 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。 给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。 测试样例: "This is nowcoder" 返回:"redocwon si sihT" 思路:利用两个分别指向首字符和尾字符的iterator来实现首尾字符交换,更新“”首尾“”。 C/C++ (clang++ 3.3) 1 class Reverse { 2 public: 3 string reverseString(string iniString) { 4 string::iterator begin; 5 string::iterator end; 6 decltype(iniString.size()) size = iniString.size(); 7 if (size==0 || size==1) 8 return iniString; 9 begin = iniString.begin(); 10 end = iniString.end()-1; 11 while(begin < end){//string和vector 的iterator have lessthan<,>operetor. 12 char c = *begin; 13 *begin = *end; 14 *end = c; 15 ++begin; 16 --end; 17 } 18 return iniString; 19 } 20 }; 您的代码已保存