前两个是后台开发的挑战题,第三个是前端的挑战题。
一、神秘数据 在这项挑战中,你会拿到一系列数据包,你的任务是解析这些数据包,恢复原始数据,并从中获取信息。
为了获取数据包,你需要连接到一台 TCP 服务器: challenge.yuansuan.cn:7042
该服务器通过以下步骤验证你的身份:
建立连接时,服务器会给你发一个握手包:"Hello, challenger:<id>\n" 你需要向服务器提供你的信息:"IAM:<id>:<email>\n" 如果验证成功,服务器会回复:"SUCCESS!\n" 成功后,服务器开始发送数据包,每个数据包的格式如下:
0 4 8 12
+--------+--------+------+=============+
|SEQUENCE|CHECKSUM|LENGTH| DATA |
+--------+--------+------+=============+
SEQUENCE
数据包序号(大端序)
CHECKSUM (校验和)
32 位校验和,计算方式如下:首先将序号和数据拼接在一块,然后以 32 位为块,进行迭代异或操作。
第一次迭代时,将数据包序号与第一块数据进行异或,第二次迭代时,将第二块数据与上次迭代的结果进行异或,以此反复。
如果 LENGTH 不是 4 的整数倍,需要用 0xAB 填充。
LENGTH
数据片段长度(大端序)
DATA
长度为 LENGTH 数据片段
当你明白数据的含义的时候,下一步就很清楚了。
二、压缩算法大挑战 在这项挑战中,你会拿到一个文件,而你的任务是设计你的压缩和解压缩方法,让文件的压缩率最高。
具体要求如下:
请提供编译方法,程序请遵守: 压缩: ./your_program — c input_file output_file 解压: ./your_progream — d input_file output_file
这个示例文件在这里:点击下载 我们还会跑另外一个类似的文件来测试你的程序的压缩率,你的得分将根据这两个文件压缩率的平均值(越小越好)来评估,来挑战吧! 请将你的代码发送至 base64(email)=emh1QGxhbWJkYWNhbC5jb20=
三、远算日历 基于 https://fullcalendar.io/写一个同步 google calendar 的 web 应用,输入为 google 账户,将相应的 calendar 显示到前端。
请将你的代码发送至 base64(email)=emh1QGxhbWJkYWNhbC5jb20=
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.