面試100題系列之10關於刪除多餘空格的再思考

2021-06-13 04:48:40 字數 652 閱讀 2079

題目描述:

1、無連續相鄰的兩個空格

2、字串開頭和結尾無空格

3、新的一行開頭和結尾無空格

要得滿分,必須滿足一下兩個條件

a、不能增加新的記憶體空間

b、只能迴圈字串一次

c、不准用庫函式

參考**:這樣就可以從檔案中讀入換行符了

#include// 寫刪除字串中的空格的程式

void main()

i = fread(str,1, 10000, fp);

str[i] = '\0';

i = 0;

j = 0;

flag = 1;

while(str[j] != '\0')

}if(str[j] == '\0')

if(str[j] == '\n')//剩下的不是換行符就是其他的

else

str[i++] = str[j++];

flag = 2;

} }//end while(str[j] != '\0')

str[i] = '\0';

printf("%d\n",i);

fwrite(str,1,i,fp);

getchar();

}

面試100題系列之18鍊錶合併

碼字也不容易是不?1 給定兩個有序的鍊錶,假設都是 公升序的。需要合併兩個鍊錶,去除重複的元素,也就是求兩個鍊錶的並,這裡要求合併之後的 結果降序排列。既然有序,那問題就簡單多了。ok,輕鬆加愉快的寫出來 遍歷兩個鍊錶,如果鍊錶1的元素比鍊錶2的元素小,取鍊錶1的元素 如果大於,則取鍊錶2的元素 如...

微軟等面試100題系列 45 2

2.乙個整數陣列,長度為n,將其分為m份,使各份的和相等,求m的最大值 比如 可以分成 m 1 m 2m 3 所以m的最大值為3 package com.interview.algorithm public class leveragesum 可以分成 m 1 m 2m 3 所以m的最大值為3 pu...

從零單排之微軟面試100題系列 08之反轉鍊錶

本題目選自july大神部落格系列 微軟面試100題 july大神,該系列我主要用來記錄我的學習筆記。題目描述 使用遞迴和不遞迴兩種方法反轉鍊錶。本題亦見於 劍指offer 面試題16 遞迴方法 node reverse node phead 非遞迴方法 因在迭代過程中,鍊錶會出現斷裂,因此需要3個指...