-5

如何从 O(1) 空间复杂度和 O(n) 时间复杂度的缓冲区中删除空格?

在这个问题中,缓冲区是什么意思?我们会将其视为字符流还是字符串?这是在编程测试中提出的问题

4

2 回答 2

1

很可能是一个(可写的)字符串或一个固定的数组,可以在 O(n) 中就地处理;

char* str = strdup("the big dog is cool"), *src = str, *dst = str;

while(*src) {
  if(*src != ' ')
    *dst++ = *src;
  src++;
}
*dst = 0;

// str is thebigdogiscool
于 2013-05-12T18:31:37.173 回答
0

好吧,不确定我是否能够正确回答您的问题,但如果我没有错,请按以下方式进行

将空格 ib 缓冲区视为 0,将非空格视为 1 现在您有字符序列或字符串或 0 和 1 数组应用任何排序算法对这些空白和非空白字符进行排序

不确定我是否有意义,但肯定是一种选择。排序算法的选择是你的

于 2013-05-12T18:34:13.187 回答