題目:
https://programmercarl.com/0344.反轉字串.html#演算法公開課
解析:
https://programmercarl.com/0344.反轉字串.html
這道題能夠獨立做出來,我採用的是之前左指標不越過右指標的方法,而不是i < s.size()/2; 如下:
for(int i = 0, j = s.size() - 1; i <= j; i++, j--)
{
swap(s[i], s[j]);
}
題目:
https://programmercarl.com/0541.反轉字串II.html#演算法公開課
解析:
https://leetcode.cn/problems/reverse-string-ii/submissions/539303459/
這個是直接i作為動力採用2k的步長,這裡沒想到,我還想著計數去判斷,計數還容易出問題,增加難度;
在從begin()+ i到begin() + i + k去轉,這裡挺巧妙的。
題目:
https://kamacoder.com/problempage.php?pid=1064
解析:
https://programmercarl.com/kamacoder/0054.替換數字.html
這裡我犯的最愚蠢的錯誤一定要記錄:
else {
s[newIndex--] = s[oldIndex];
}
oldIndex--;
// 在這裡我想著反正要--為啥不在內部--
else {
s[newIndex--] = s[oldIndex--];
}
// 想弄成這樣,這樣會報陣列越界的問題,我想了半天才理解;原來是oldIndex是每次都要向左移一位;
而不是在不等於數字時才移,當棋等於數字完,也得向左移一位