Google Kickstart在线测试规则以及注意事项
来源:互联网 发布:autocad2008软件下载 编辑:程序博客网 时间:2024/05/18 03:24
下面介绍一下进谷歌的第一关google kickstart在线测试规则和注意事项。
google kickstart网址: https://code.google.com/codejam/
(PS. 建议全程连接vpn操作。)
首先你要有一个谷歌账号,可以是Gmail邮箱账号,没有的话注册一个。
然后进入上面的网址,右上角有一个log in,点了之后等一下,就会跳出谷歌登录页面,登录之后完善一下kickstart所需信息点击完成即可。
然后大家可以点击右上角的PAST CONTEST寻找过往的题目自己练练手。
这里先说一下规则:
(完整规则在这里:https://code.google.com/codejam/resources/quickstart-guide#gcj)我这里只是简单概括一下。
谷歌在线测试不同于以往大家做的各种ACM在线评测那样,不是让你不断提交代码然后系统给你测试,而是给你数据集让你自己测试后在本地生成输出文件进行上传。
拿2017年C轮测试第一题举例来说,(网址:https://code.google.com/codejam/contest/4344486/dashboard#s=p0)
点进题目之后会看到有两个按钮,(真正在线测试开始的时候按钮的文字可能会有所不同),
点击后会出现下载信息,这题下载的文件名是A-small-practice.in,点击下载。下载完后可以用记事本打开看看,里面的内容就相当于你控制台的输入了,而我们需要做的就是把这个文件的内容当作输入,然后提交经过程序处理后的输出结果,为.out的文件,系统进行判断你这个.out文件得到的结果是否是正确的,如果正确就显示correct,否则为incorrect。
对于C++来说,也就是文件的输入和输出,代替了你的cin>>和cout<< ,所以忘记了如何进行文件处理的同学可以回去复习一下。
PS. 每一道题都有小数据集和大数据集两个.in文件可供下载,大数据集的数据范围一般都比小数据集的范围更广,有时候代码如果不够精细的话,小数据集没出现的情况在大数据集中会出现从而造成小数据集正确而大数据集结果错误。
下面是我写的A题处理代码(注意A-small-practice.in文件需要和程序文件放在同一个文件夹下):
C++ :
#include<iostream>#include<fstream>using namespace std;int main(){ string data; int line; int store[100]; int origin[100]; ifstream infile; infile.open("A-small-practice.in"); ofstream outfile; outfile.open("A-small-practice.out"); cout << "Reading from the file" << endl; infile >> line; for (int i = 0 ; i < line ; i++){ bool hasA = false; infile >> data; int length = data.length(); cout<< data <<" "; //本代码中控制台输出只是为了方便对照,与实际输出文件并无联系。 //存储数据 for (int j = 0; j<length ; j++){ store[j] = (int)data[j] - 65; //强制类型转换,将A-Z转成0-25的数字 } if ( length % 2 == 0 ){ //处理: //正向: origin[1] = store[0]; for (int m = 3 ; m < length ; m = m + 2){ if (origin[m-2] > store[m-1]) origin[m] = store[m-1] + 26 - origin[m-2]; else origin[m] = store[m-1] - origin[m-2]; } //反向: origin[length-2] = store[length-1]; for (int m = length-4; m >= 0 ; m = m - 2){ if (origin[m+2] > store[m+1]) origin[m] = store[m+1] + 26 - origin[m+2]; else origin[m] = store[m+1] - origin[m+2]; } cout<<"Case #" << i + 1 << ": " ; outfile<<"Case #" << i + 1 << ": " ; for (int j = 0; j<length ; j++){ int zimu = origin[j] + 65; outfile << (char)zimu ; cout << (char)zimu ; } } if ( length % 2 != 0){ cout<< "Case #" << i + 1 << ": AMBIGUOUS"; outfile << "Case #" << i + 1 << ": AMBIGUOUS"; } outfile <<endl; cout<<endl; } return 0;}
看懂了题目之后还是比较简单的一题。运行代码,在程序文件夹下就会产生一个A-small-practice.out文件。再到题目所在的网页里点击submit后选择提交,页面就会显示correct。对于大数据集的操作就是改一下代码中的文件名,最后结果依然也会是correct,自此测试完成。
如果正确,Correct显示在页面最上方,如图所示:
注意事项:
1、实际正式测试的时候除了需要提交结果文件,代码也需要同时提交。
2、多多注意题目中的limit等限制,比方说这个题目明确说了无解的数据集是不会出现的,看清楚了之后能为你省去代码中很多判断步骤。
3、正式测试的时候小数据集有无数次下载机会,如果结果错误,可以不断尝试,只不过每四分钟换一个小数据集文件,里面内容不一样。大数据集只有一次下载机会,你提交了之后你也不知道你的结果对不对,只有等整个测试结束之后才会告诉你。
4、可以先在控制台进行部分关键数据测试,手动输入,控制台输出,看看结果是否有误,确认一些易错数据都正确了之后再进行文件的处理,对于调试来说方便了许多。
祝大家做题顺利~
- Google Kickstart在线测试规则以及注意事项
- KICKSTART测试
- google在线测试练习题1
- google在线测试练习题2
- google在线测试练习题3
- 测试一下GOOGLE 的在线相册
- 2014 google (在线)测试笔试题解
- google校招在线测试题---2048
- ios项目icon和default图片命名规则以及注意事项
- Google Kickstart 2017 Round A 题解
- Google KickStart的一些理解和学习
- kickstart
- kickstart
- Kickstart
- kickstart
- LINK - Google Play Store 应用内购买测试注意事项
- 2014校招 Google在线测试第二场题解 A
- 2014校招 Google在线测试第二场题解 B
- jquery实现form表单提交后局部刷新页面的多种方法
- 利用ajax短轮询+php与服务器交互制作简易即时聊天网站
- 如何把php项目部署到阿里云服务器window server2012__含公网ip访问时jquery/ajax失效解决办法
- C#简单实现读取txt文本文件并分页存储到数组
- unity3D使用C#遍历场景内所有元素进行操作
- Google Kickstart在线测试规则以及注意事项
- C#窗体间传值简单小例子
- c#解析json字符串处理(最清晰易懂的方法)
- 异步编程一 初探 Javascript Promise
- 1024. 科学计数法 (20)
- IDLE设置字体大小
- 二、springmvc前后台交互(转)
- 【主席树模板】题
- 《Effective C++读书笔记》--条款05:了解C++默默编写并调用哪些函数