1. 程式人生 > >筆試and心態

筆試and心態

今天第一次參加了某公司的線上筆試!這讓我發現調整好心態有多重要!簡單說說我遇到的第一道程式設計題:

題意大致為輸入幾組資料,其中包含一個已知長度字串(類似於 .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]  的下標引用錯誤,更糟糕的是我用一個多小時的時間去除錯,也沒看出來,直到考試結束。。。

好吧!我是在考完之後又把它拿出來看了一遍。因為不甘心!兩分鐘,成功了大哭,我卻笑不出來。。。

特發此文,警示自身!