Google Kickstart在线测试规则以及注意事项
谷歌招聘在如火如荼的进行中,进谷歌都需要经过谷歌kickstart在线测试,然后过了之后还有五轮的面试- -。好吧毕竟你待遇高,你强你有理。。
下面介绍一下进谷歌的第一关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[];
int origin[]; 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 = ; i < line ; i++){ bool hasA = false;
infile >> data; int length = data.length(); cout<< data <<" "; //本代码中控制台输出只是为了方便对照,与实际输出文件并无联系。
//存储数据
for (int j = ; j<length ; j++){
store[j] = (int)data[j] - ; //强制类型转换,将A-Z转成0-25的数字
} if ( length % == ){ //处理:
//正向:
origin[] = store[];
for (int m = ; m < length ; m = m + ){ if (origin[m-] > store[m-])
origin[m] = store[m-] + - origin[m-];
else
origin[m] = store[m-] - origin[m-];
}
//反向:
origin[length-] = store[length-];
for (int m = length-; m >= ; m = m - ){ if (origin[m+] > store[m+])
origin[m] = store[m+] + - origin[m+];
else
origin[m] = store[m+] - origin[m+];
} cout<<"Case #" << i + << ": " ;
outfile<<"Case #" << i + << ": " ; for (int j = ; j<length ; j++){
int zimu = origin[j] + ;
outfile << (char)zimu ;
cout << (char)zimu ;
} } if ( length % != ){
cout<< "Case #" << i + << ": AMBIGUOUS";
outfile << "Case #" << i + << ": AMBIGUOUS";
} outfile <<endl;
cout<<endl; } return ;
}
看懂了题目之后还是比较简单的一题。运行代码,在程序文件夹下就会产生一个A-small-practice.out文件。再到题目所在的网页里点击submit后选择提交,页面就会显示correct。对于大数据集的操作就是改一下代码中的文件名,最后结果依然也会是correct,自此测试完成。
如果正确,Correct显示在页面最上方,如图所示:
注意事项:
1、实际正式测试的时候除了需要提交结果文件,代码也需要同时提交。
2、多多注意题目中的limit等限制,比方说这个题目明确说了无解的数据集是不会出现的,看清楚了之后能为你省去代码中很多判断步骤。
3、正式测试的时候小数据集有无数次下载机会,如果结果错误,可以不断尝试,只不过每四分钟换一个小数据集文件,里面内容不一样。大数据集只有一次下载机会,你提交了之后你也不知道你的结果对不对,只有等整个测试结束之后才会告诉你。
4、可以先在控制台进行部分关键数据测试,手动输入,控制台输出,看看结果是否有误,确认一些易错数据都正确了之后再进行文件的处理,对于调试来说方便了许多。
祝大家做题顺利~
Google Kickstart在线测试规则以及注意事项的更多相关文章
- [转]程序开发基础学习二(C++ Google Style 命名规则)
无规矩不成方圆,新的岗位就需要服从团队的编码规则.很开心团队用的是Google的C++编码规则,大概看了下Google 的编码规则,正如九天翔雁说的:“Google的 C++ Style Guide远 ...
- google 变量命名规则简要记录
1.文件命名规则 好的文件名命名可以很清晰的看出这个文件将要承载的内容,Google给出的规则为:文件名要全部小写, 可以包含下划线 (_) 或连字符 (-). 按项目约定来, 例如:cmd_save ...
- google Kickstart Round G 2017 三道题题解
A题:给定A,N,P,计算A的N!次幂对P取模的结果. 数据范围: T次测试,1 ≤ T ≤ 100 1<=A,N,P<=105 快速幂一下就好了.O(nlogn). AC代码: #inc ...
- python 变量的命名规则和注意事项
命名规则 变量名只能包含字母.数字和下划线.变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message 变量名不能包含空格,但可使用下划线 ...
- 2019 google kickstart round A
第一题: n个人,每个人有一个对应的技能值s,现在要从n个人中选出p个人,使得他们的技能值相同. 显然,如果存在p个人的技能值是相同的,输出0就可以了.如果不存在,就要找出p个人,对他们进行训练,治他 ...
- Google kickstart 2022 Round A题解
Speed Typing 题意概述 给出两个字符串I和P,问能否通过删除P中若干个字符得到I?如果能的话,需要删除字符的个数是多少? 数据规模 \[1≤|I|,|P|≤10^5 \] 双指针 设置两个 ...
- google Kickstart Round F 2017 四道题题解
Problem A. Kicksort 题意抽象一下为: 对于一个每次都从数列正中间取划分数的快速排序,给定一个1-n的排列,问快排的复杂度对于这个排列是否会退化为最坏复杂度. 数据范围: 测试组数1 ...
- Google Kickstart Round.B C. Diverse Subarray
这题又是万恶的线段树 maxx[j]存储的是 l = xxx, r = j的时候的答案 我们会让 l 从 1到n 的遍历中,查询线段树的[l, n]中最大的答案 因为query的下界是n,所以单次查询 ...
- Google Kickstart Round E 2018 B. Milk Tea
太蠢了,,,因为初始化大数据没过,丢了10分,纪念一下这个错误 大概思路:先求出让损失值最小的排列,由已生成的这些排列,通过更改某一个位置的值,生成下一个最优解,迭代最多生成m+1个最优解即可,遍历求 ...
随机推荐
- luoguP1401 城市
https://www.luogu.org/problemnew/show/P1401 二分答案网络流判断是否可行即可 #include <bits/stdc++.h> using nam ...
- [Swift实际操作]八、实用进阶-(10)使用Swift创建一个二叉树BinaryTreeNode
1.二叉树的特点: (1).每个节点最多有两个子树(2).左子树和右子树是有顺序的,次序不能颠倒(3).即使某节点只有一个子树,也要区分左右子树 2.二叉查找树(Binary Search Tree) ...
- MyBatis介绍及使用
一.介绍: 1.MyBatis实际上是Ibatis3.0版本以后的持久化层框架[也就是和数据库打交道的框架]! 2.和数据库打交道的技术有: 原生的JDBC技术--->Spring的JdbcTe ...
- docker下ubutun没有ifconfig命令问题
解决: apt-get update #更新apt-get apt install net-tools # ifconfig apt install iputils-ping # ...
- (STM32F4) Real-time Clock
老實說Real-time Clok這項功能,我也只有在PC和手機上有見過,其他的應用產品上我也很少見到. 言歸正傳在STM32F4 RTC這項功能在IC內部就有內建,在早期的8051是如果要做RCT是 ...
- 【Linux】DNS服务-BIND基础配置
1.BIND简介 现在使用最为广泛的DNS服务器软件是BIND(Berkeley Internet Name Domain),最早有伯克利大学的一名学生编写,现在最新的版本是9,有ISC(Intern ...
- python之time和datetime的常用方法
python之time和datetime的常用方法 一.time的常用方法: import time,datetime # 时间有三种展现方式:时间戳,时间元组,格式化的时间print(time. ...
- 洛谷 P1477 [NOI2008]假面舞会
题目链接 题目描述 一年一度的假面舞会又开始了,栋栋也兴致勃勃的参加了今年的舞会. 今年的面具都是主办方特别定制的.每个参加舞会的人都可以在入场时选择一 个自己喜欢的面具.每个面具都有一个编号,主办方 ...
- mock static方法
<dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mock ...
- [V1-Team] WEDO创意论坛技术规格说明书
WEDO 创意论坛技术规格说明书 0x0 文档版本 版本号 说明 v1.0 初步确定技术路线 附Github仓库:WEDO 0x1 技术说明 1. 前端框架 在主流的前端框架中,我们调研了Vue. ...