筆試and心態
阿新 • • 發佈:2019-01-10
今天第一次參加了某公司的線上筆試!這讓我發現調整好心態有多重要!簡單說說我遇到的第一道程式設計題:
題意大致為輸入幾組資料,其中包含一個已知長度字串(類似於 .b..bz....),和幾個 類似 1 h 、 2 x的組合,意為替換字串中 1 的位置為 h 、 替換2 的位置為x,每次替換後呼叫 f(s)函式,f(s)函式將連續的兩個 '..' 變為一個 '.' ,直到字串裡只剩下一個 ‘.’ , f(s)要輸出的是每次替換後,將 ‘..’ 改為 ‘.’ 的次數!
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> char a[20] = { 0 }; int count = 0; int len = 0; void f() { int i = 0, j = 0; int l = len; for (i = 1; i < l; i++) { if ((a[i] == '.') && (a[i - 1] == '.')) { for (j = i; j < l; j++) { a[j] = a[j + 1]; } count++; l--; } } printf("%d\n", count); } void change(int n) { int i = 0; int ad = 0; char ch; count = 0; for (i = 0; i < n; i++) { scanf("%d %c", &ad, &ch); a[ad] = ch; f(); } } int main(void) { int num = 0, k = 0; while (scanf("%d%d", &len, &num) != EOF) { scanf("%s", a); change(num); } return 0; }
其實當時做完選擇填空我還有大把的時間, 但是由於疏忽的原因,導致 剛開始寫的f()函式裡 a[j] = a[j + 1] 的下標引用錯誤,更糟糕的是我用一個多小時的時間去除錯,也沒看出來,直到考試結束。。。
好吧!我是在考完之後又把它拿出來看了一遍。因為不甘心!兩分鐘,成功了,我卻笑不出來。。。
特發此文,警示自身!