谷歌招聘在如火如荼的进行中,进谷歌都需要经过谷歌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在线测试规则以及注意事项的更多相关文章

  1. [转]程序开发基础学习二(C++ Google Style 命名规则)

    无规矩不成方圆,新的岗位就需要服从团队的编码规则.很开心团队用的是Google的C++编码规则,大概看了下Google 的编码规则,正如九天翔雁说的:“Google的 C++ Style Guide远 ...

  2. google 变量命名规则简要记录

    1.文件命名规则 好的文件名命名可以很清晰的看出这个文件将要承载的内容,Google给出的规则为:文件名要全部小写, 可以包含下划线 (_) 或连字符 (-). 按项目约定来, 例如:cmd_save ...

  3. 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 ...

  4. python 变量的命名规则和注意事项

    命名规则 变量名只能包含字母.数字和下划线.变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message 变量名不能包含空格,但可使用下划线 ...

  5. 2019 google kickstart round A

    第一题: n个人,每个人有一个对应的技能值s,现在要从n个人中选出p个人,使得他们的技能值相同. 显然,如果存在p个人的技能值是相同的,输出0就可以了.如果不存在,就要找出p个人,对他们进行训练,治他 ...

  6. Google kickstart 2022 Round A题解

    Speed Typing 题意概述 给出两个字符串I和P,问能否通过删除P中若干个字符得到I?如果能的话,需要删除字符的个数是多少? 数据规模 \[1≤|I|,|P|≤10^5 \] 双指针 设置两个 ...

  7. google Kickstart Round F 2017 四道题题解

    Problem A. Kicksort 题意抽象一下为: 对于一个每次都从数列正中间取划分数的快速排序,给定一个1-n的排列,问快排的复杂度对于这个排列是否会退化为最坏复杂度. 数据范围: 测试组数1 ...

  8. Google Kickstart Round.B C. Diverse Subarray

    这题又是万恶的线段树 maxx[j]存储的是 l = xxx, r = j的时候的答案 我们会让 l 从 1到n 的遍历中,查询线段树的[l, n]中最大的答案 因为query的下界是n,所以单次查询 ...

  9. Google Kickstart Round E 2018 B. Milk Tea

    太蠢了,,,因为初始化大数据没过,丢了10分,纪念一下这个错误 大概思路:先求出让损失值最小的排列,由已生成的这些排列,通过更改某一个位置的值,生成下一个最优解,迭代最多生成m+1个最优解即可,遍历求 ...

随机推荐

  1. 快速理解mysql主从,主主备份原理及实践

    感谢大家在上一篇 学一点Git--20分钟git快速上手 里的踊跃发言.这里再次分享干货, 简单介绍mysql双机,多机异地热备简单原理实战. 双机热备的概念简单说一下,就是要保持两个数据库的状态自动 ...

  2. Jmeter环境搭建详细介绍

    [前言] 欢迎来到我的博客,知识在于分享,如有不足之处,希望指出,大家共同进步学习! [JDK检查和安装] 现在市面上比较普遍的性能测试工具无非就LoadRunner和Jmeter,本人一直秉持着便宜 ...

  3. ajax返回数据成功 却进入error方法

    应该是dataType的原因,dataType为json,但是返回的data不是json格式 于是将dataType:"json"去掉就ok了

  4. 洛谷 P3376【模板】网络最大流

    题目描述 如题,给出一个网络图,以及其源点和汇点,求出其网络最大流. 输入输出格式 输入格式: 第一行包含四个正整数N.M.S.T,分别表示点的个数.有向边的个数.源点序号.汇点序号. 接下来M行每行 ...

  5. angularJs表格效果

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script sr ...

  6. 基于JsonPath和XmlPath的对象映射(Object Mapping)

    rest-assured支持映射Java对象到Json和XML以及从Json和XML中映射到Java对象.Json映射需要在classpath 中有Jackson.Jackson 2或者是Gson,X ...

  7. Apache Shiro(六)-基于URL配置权限

    数据库 先准备数据库啦. DROP DATABASE IF EXISTS shiro; CREATE DATABASE shiro DEFAULT CHARACTER SET utf8; USE sh ...

  8. [转] JavaScript中的Truthy和Falsy介绍

    [From] http://www.jb51.net/article/59285.htm 与大多数编程语言一样,JavaScript中存在boolean类型,以供逻辑判断使用.不过,和很多其它编程语言 ...

  9. javascript有哪些优秀的库,把你喜欢的都说出来吧

    回复格式 应用领域 ……  你喜欢的js库名称 …… 作用(一句话) web …… jquery …… 众所周知的dom操作库 seajs …… js的管理框架 ejs  ……  没有学习成本的js模 ...

  10. .net mvc 用jquery ajax成功后页面跳转。

    $.ajax({ //url: 'http://192.168.0.102/webApiDemo/api/WebApiTest/PostStudentInforOnePara', //url: &qu ...