-
请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。
给定一个string iniString,请返回一个string,为翻转后的字符串。保证字符串的长度小于等于5000。
string reverse(string s) { string c; string::size_type siz, i, j, mid_siz; string::size_type check; check = s.size() % 2; mid_siz = s.size() / 2; if (check == 1) { for (i = 0, j = s.size(); i<mid_siz + 1, j>mid_siz - 1; ++i, --j) { c = s[i]; s[i] = s[j]; s.replace(j, 1, c); } } else { for (i = 0, j = s.size(); i<mid_siz, j>mid_siz; ++i, --j) { c = s[i]; s[i] = s[j]; s.replace(j, 1, c); } return s; } }//VS2015 和 G++中通过(本方法未考虑字符串中含有回车符)