题目:替换字符串中的空格为$$$。要求时间复杂度为O(N)
例如:将”talk is cheap show me the code”替换。 基本思想: 栗子:we are family
参考代码:
void ReplaceBlank(char string[], int length) { //length为字符串的总容量 if (string == NULL || length <= 0) return; //字符串实际长度 int actuallen = 0; //空格个数 int blanknum = 0; int i = 0; while (string[i]!='\0') { if (string[i] == ' ') blanknum++; actuallen++; i++; } //替换后的总长度 int newlen = actuallen + blanknum * 2; if (newlen > length) return; int actualidx = actuallen; int newidx = newlen; while (actualidx>=0 && newidx>actualidx) { if (string[actualidx] == ' ') { string[newidx--] = '$'; string[newidx--] = '$'; string[newidx--] = '$'; } else { string[newidx--] = string[actualidx]; } actualidx --; } int j = 0; while (j<newlen) { cout << string[j] << " "; j++; } }