題目:
請(qǐng)實(shí)現(xiàn)一個(gè)函數(shù),把字符串中的每個(gè)空格替換成"20%"。例如輸入"We are happy",則輸出"We%20are%20happy"。
假設(shè)原字符串后有足夠的內(nèi)存空間,不會(huì)出現(xiàn)內(nèi)存踩踏。
解法:
排除另開(kāi)辟空間的方法。
常規(guī)解法是,從頭到尾遍歷,遇到空格時(shí),把空格后面的字符串依次后移。但該種方法會(huì)導(dǎo)致某些字符重復(fù)移動(dòng)。
更合適的方法是,先計(jì)算出原字符串中有多少空格,然后從尾到頭遍歷,因?yàn)橐婚_(kāi)始就知道被移動(dòng)字符的最終位置,因此可以避免字符的重復(fù)移動(dòng)。時(shí)間復(fù)雜度O(n)