2013-05-12 68 views
-5

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

这个问题的缓冲区是什么意思?我们会认为它是一串字符或字符串吗?这是一个在编程测试中提出的问题

+0

我会假设他们的意思是一些长度的数组(可能是一个空字符串)。 – 2013-05-12 18:25:00

+0

“我们是指你的问题还是测试的一部分? – Barmar 2013-05-12 18:58:50

+0

空白?有没有称为非空白的东西? – timss 2013-05-13 00:15:55

回答

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 
0

嘛不知道如果我能够正确地得到您的问题,但如果我没有在下列方式

错误进行

考虑空格IB缓冲区为0和非空格为1s 现在你有字符序列或字符串或0和1的数组 应用任何排序算法来排序这些空白和非空白字符

不确定我是否有意义,但肯定是它的一个选项。分类算法的选择是你的