請編寫一個方法,將字符串中的空格全部替換為“%20”。假定該字符串有足夠的空間存放新增的字符,并且知道字符串的真實長度(小于等于1000),同時保證字符串由大小寫的英文字母組成。 給定一個string iniString 為原始的串,以及串的長度 int len, 返回替換后的string。 測試樣例: “Mr John Smith”,13 返回:”Mr%20John%20Smith” ”Hello World”,12 返回:”Hello%20%20World”
題目非常簡單,唯一需要注意的是需要首先在尾后遞增,而不是字符串后面一開始就有那么大的空間。
class Replacement {public: string replaceSpace(string iniString, int length) { if(length<=0) return string{}; int countspace=0; for(int i=0;i!=length;++i) { if(iniString[i]==' '){ ++countspace; iniString+="xx"; } } int lensum=length+2*countspace; int j=lensum-1; for(int i=length-1;i>=0;--i) { if(iniString[i]==' ') { iniString[j]='0'; iniString[j-1]='2'; iniString[j-2]='%'; j=j-3; } else { iniString[j]=iniString[i]; --j; } } return iniString; }};新聞熱點
疑難解答