如何从 O(1) 空间复杂度和 O(n) 时间复杂度的缓冲区中删除空格?
在这个问题中,缓冲区是什么意思?我们会将其视为字符流还是字符串?这是在编程测试中提出的问题
很可能是一个(可写的)字符串或一个固定的数组,可以在 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
好吧,不确定我是否能够正确回答您的问题,但如果我没有错,请按以下方式进行
将空格 ib 缓冲区视为 0,将非空格视为 1 现在您有字符序列或字符串或 0 和 1 数组应用任何排序算法对这些空白和非空白字符进行排序
不确定我是否有意义,但肯定是一种选择。排序算法的选择是你的