首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

OJ 刪除字串指定字元:逐字讀取輸出避免超時/超輸出限制

     編輯:程式設計綜合問答

題目:多組測資,每組第一行為刪除字元,第二行為字串,輸出刪除後字串。原代碼用 `gets` 讀整行再迴圈,導致「超出輸出限制」或超時。

優化關鍵

**不儲存整行字串**,逐字元 `getchar()` 讀取、判斷、即時 `putchar()` 輸出:

#include <stdio.h>
int main() {
    int ch, del;
    while ((del = getchar()) != EOF) {
        getchar(); // 吞掉換行
        while ((ch = getchar()) != '\n' && ch != EOF) {
            if (ch != del) putchar(ch);
        }
        putchar('\n');
    }
    return 0;
}
  • 避免大緩衝區與 `printf` 格式化開銷。
  • 正確處理多組測資直到 EOF。
  • 單字元 I/O 在 OJ 通常足夠快;若仍超時可改用 `fread`/`fwrite` 大塊讀寫。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved