面试题:替换空格

xiaoxiao2021-02-28  30

题目:替换字符串中的空格为$$$。要求时间复杂度为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++; } }
转载请注明原文地址: https://www.6miu.com/read-1000123.html

最新回复(0)