LeetCode刷题日记 344. 反转字符串

    科技2025-04-19  6

    这题是我第一道一遍写出的题目,每一次进步都值得庆贺。不过事实上最近确实每天都在被supervised learning毒打。

    题目给出一个数组,数组中包含一串字符串,要求在不使用额外数组的情况下,原地将数组中字符串的顺序反转。第一个想到的是用swap()函数,然后将数组中对称部分反转。对称的情况下奇数个数与偶数个数需要分开考虑。代码如下:

    class Solution { public: void reverseString(vector<char>& s) { int len = s.size(); int startPoint; int times = 0; //记录循环次数 if(len % 2 == 0) startPoint = len / 2; //判断奇偶,确定交换的起始点 else startPoint = (len - 1) / 2; while(startPoint < len) { if(len % 2 == 0) { swap(s[startPoint],s[startPoint - 2 * times - 1]); //通过循环次数与起始点的变化来寻找字符串交换的位置 } else { swap(s[startPoint],s[startPoint - 2 * times]); } startPoint++; times++; } } };

     

    Processed: 0.010, SQL: 8