2013-05-12 72 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的數組 應用任何排序算法來排序這些空白和非空白字符

不確定我是否有意義,但肯定是它的一個選項。分類算法的選擇是你的