牛客网未通过代码---

  1. 请实现一个算法,在不使用额外数据结构和储存空间的情况下,翻转一个给定的字符串(可以使用单个过程变量)。

    给定一个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++中通过(本方法未考虑字符串中含有回车符)
    
    
原文地址:https://www.cnblogs.com/gardenofhu/p/5822102.html