反轉字符串——雙指針

一開始我自己固有的思維是 只用一個“指針” 

也就是尋常的for(int i = 0;i<=(length>>2);i++)

但後面提交的時候會出現問題——過度交換了

因爲

for(int i = 0 ; i <= (length>>2) ; i++){
                temp = s[i];
                s[i] = s[length - i -1];
                s[length - i - 1] = temp;
            }

 

如果用雙指針——一個指頭 一個指尾

就簡單很多,不需要考慮哪個對應哪個交換

 for(int i = 0 ,j=length -1;i<j;i++,j--){
            temp = s[i];
            s[i] = s[j];
            s[j] = temp;
        }
            

比較少在for循環中同時對兩個變量進行處理

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章