Posted on 2005-12-19 08:32
Raistlin 阅读(451)
评论(0) 编辑 收藏 引用 所属分类:
Other
今天早上查看信箱,才发现google的比赛昨天已经开始,到今天中午12点结束。于是直奔考场。一看两个题目,250分和750分。俺直接打开750分的题目。
看了10分钟英文的题目,大概理解如下:有个m * n的字符串数组grid,和一个长度为g的字符串path,匹配方式是从grid中任何一个位置开始,从上下左右和对角方向(共八个方向)进行匹配,要求计算匹配的次数。如果匹配次数大于1000000000,返回-1。
类名字为WordPath,方法为int countPaths(vector <string> grid, string find);(俺语言选了C++)
看完题目,只剩下不到50分钟了,赶快写吧。直接开了个vc,创建类,写函数(不习惯竞技场的界面的)...正要调试的时候vc出问题了,说俺文件丢失。@#$!懒得去找丢失的文件。直接用竞赛场的界面来调试吧。我用vc编译是没问题的,在竞技场上编译就出问题了。因为vc工程的头文件和cpp文件是分开的,而竞技场里面是合并的。copy过来的时候出了问题..声明了虚构函数却没实现...
好不容易调试通过了,运行出问题了,错误结果是:segmentation fault。但我不知道这个segmentation fault是什么鸟。编码的时间从剩余的十几分钟一直到10分钟,到1分钟....烦了,干脆关掉。
郁闷,出去逛了一圈回来,重新建个vc的工程自己调试。运行没什么问题啊...返回的结果似乎也是正确的(俺只测试了一个例子)。奇怪为什么同样的代码在上面运行就出错呢?
只能怪自己是菜鸟了。安慰的说法是俺不是编程机器...
总结一下俺失败的经验:
1.C++的类要习惯把头文件和cpp文件写在一快。
2.完全不要考虑参数是否会出错,不要浪费时间做错误处理。
3.完全用C的代码来写C++的类。C++的特性不要使用,比如static成员,在构造函数里面初始化等。
4.比赛前研究一下调试的环境,好像标准输入输出是可以用的,但我没试过...
做好上面4点,完成题目的可能性会比较大了。