題目描述:給定乙個字元陣列,將其中的某一字元替換為其他幾個字元;如we are tf將空格替換為%20,結果為we%20are%20tf(字元陣列後有足夠位置)
分析:如果從前往後替換則一些字元會多次移動浪費時間,如果能一次將其放入位置一定會減少資源利用的
思路:遍歷一遍算出每個字元要移動到的位置,以便一次移動到目標位置
實現:
public static void replaceblack(char s)
length++;
i++;
}if(s==null||length==0)
return;
int last=count*2+length-1,pre=length-1;
while(pre!=last)
else}}
主調函式:
public static void main(string args)
i=0;
while(b[i]!='\0')
last=al+bl-1;
prea=al-1;
preb=bl-1;
if(prea==0||preb==0)
return;
while(prea>=0&&preb>=0)
else
}while(preb>=0)
}
主調函式:
public static void main(string args)
}
結果:1234459000
總結:遇到案例後如果有多次執行乙個操作後到目標狀態,應該想想是否可以一次可以到達目標狀態。
劍指offer 替換字串
思路 如果直接替換,就有可能覆蓋修改在字串後面的記憶體。如果建立新的字串並在新的字串上做替換,我們就可以分配足夠多的記憶體。對於任何乙個函式,我們要做哪些基本的檢測 1.傳入的引數有效性 2.函式體邊界的判斷 3.返回值正確返回 void replaceblank char str,int leng...
劍指Offer 替換字串
我是鏈結 2.題目描述 將乙個空格字元 替換為三個字元 20 需要三個字元的空間,則在第乙個空格後的字元需要後挪 2 1格,第二個空格後的字元需要後挪2 2格,第三個空格後的字元需要後挪3 2格 依此類 推。4.思路 遍歷字串記錄其中的空格個數,最後再根據空格的順序後挪該空格後的字串,同時替換空格 ...
劍指offer 替換空格
思路 首先遍歷字串,找出空格的數量countspace,計算變換後的總長為newlength str.length 2 countspace。定義心得字元陣列,長度為newlength 從字串的後面開始複製和替換,如果不是空格,就複製,如果是空格,就變為 20.難點 牛客網上傳入引數是stringb...