向字符串添加空格
思路:
我们先malloc一个数组-arr存放s的元素和空格,这个数组应该多大呢?
首先我们可以算出s数组的大小-len,也可以直接得到spaces的大小-即要添加的空格数,那么我们要创建的数组大小是len+spacesSize吗? 不是,应该是len+spacesSize+1,这里的加一是存放一个'\n'
这里呢 我们可以写一个for i循环,用来把s中的元素放到arr里面,然后在外面定义一个falg用来充当arr的下标,存进一个元素falg++,再定义一个j=0,当i == space[j]就存放空格,每存放一个空格++.
代码(力扣中用C语言写的):
char * addSpaces(char * s, int* spaces, int spacesSize){ int i = 0; int j = 0; int falg = 0; int len = strlen(s); char* arr = (char*)malloc((sizeof(char)) *(len + spacesSize + 1)); for(i = 0; i < len; i++) { if(j < spacesSize && i == spaces[j]) { j++; arr[falg++] = ' '; } arr[falg++] = s[i]; } arr[falg] = '\0'; return arr; }