[八我司] 介绍一下Uber tech stack和各个大组的情况

一亩三分地论坛

 找回密码
 Sign Up 注册获取更多干货
E轮2.5亿美元融资
K12教育独角兽一起作业
北京-诚聘人工智能/教育/大数据岗
坐标湾区
Games Startup
招聘游戏开发工程师
游戏初创公司招聘工程师、UIUX Designer和游戏策划
码农求职神器Triplebyte:
不用海投
内推多家公司面试
把贵司招聘信息放这里
查看: 8540|回复: 33
收起左侧

Cryptic Studio 家OA,题目不多质量不错,可看可学

[复制链接] |试试Instant~ |关注本帖
chenyy0527 发表于 2015-8-15 11:26:08 | 显示全部楼层 |阅读模式

2015(7-9月) 码农类General 硕士 全职@Cryptic Studio - 网上海投 - 在线笔试  | Pass | fresh grad应届毕业生

注册一亩三分地论坛,查看更多干货!

您需要 登录 才可以下载或查看,没有帐号?Sign Up 注册获取更多干货

x
这个公司的OA题好像从来不会变,他们家OA面经其实之前在地里被发过了(http://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=139479&highlight=cryptic),不过版面有点不清晰,我就把重要的再发一遍好了。第二题想看更多的 test case 可以点那个链接看。.1point3acres网

OA里只有两道题,难度中等,要求5小时做出来,但是事实长代码写的顺手的话不需要那么久。我第一道题花了半个多小时,第二道题一个半小时,这都是包括debug的时间。
之前看网上大家聊起的说5个小时做不完,有点被吓到,但是其实不难。我昨天提交的,今天上午就通知过了,现已安排phone interview下下周,结束后再来发面经给大家!
(如果5个小时写不出,那其实还需要训练自己的码能力)

1. Write a function that accepts a string of digits and a target value as input parameters. This function should output the two input values followed by a string with +'s and *'s between the digits so the result of evaluating the mathematical expression is the target value. Pay attention to operator precedence. Note there may be more than one answer, it doesn't matter which one you print.

Examples:
"1231231234",11353 -> "12*3+1+23*123*4" .1point3acres网
"3456237490",1185 -> "3*4*56+2+3*7+490"
"3456237490",9191 -> "no solution"

挺简单的回溯,对每个字符后面可能存在:不操作,插入+,插入*   一共三种情况,操作完算一算。
需要注意一下溢出的情况,除此之外没啥别的
. 1point 3acres 论坛
2. Write a function "void link(char **tiles)" that accepts a list of 'tiles' in the provided format below. It should link the tiles together sequentially in the order they are given, and print out the current count and arrangement of tiles at each step exactly as shown in the example output below, including the note about how far the tile had to be rotated.

A tile is a 2-by-2 square split into quadrants, where each quadrant has a number from 0 to 9. After the first tile, a tile can be legally placed if at least two of its quadrants match quadrants on adjacent tiles horizontally or vertically. A tile cannot be legally placed in a location if it would have fewer than two matching quadrants or has any quadrants that do not match horizontally or vertically. Tiles can be rotated, and tiles can be placed in offset positions as demonstrated with tile 9 in the third example. The inputs are always designed so there is only one place a tile will fit.

看上去难其实非常简单,每个tile测试一下能放哪里就好了,测试过程中需要旋转一下(旋转的函数相当简单吧),放好了就停止搜索,然后打印一下当前的board

Examples:
char *tiles1[] = {
        "11",     // 1
        "23",
        "",
        "44",     // 2. 围观我们@1point 3 acres
        "11",
        "",. 1point3acres
        "16",     // 3
        "36",. visit 1point3acres for more.
        "",
        "51",     // 4
        "71",
        "",
        "46",     // 5. 牛人云集,一亩三分地
        "26",
        "",
        "14",     // 6. visit 1point3acres for more.
        "68",
        0};

. from: 1point3acres
link(tiles1) prints:

6 tiles
link 1
11
23
. 1point3acres
link 2. Waral 博客有更多文章,
44
11. 围观我们@1point 3 acres
11. From 1point 3acres bbs
23

link 3
44
11
1116
2336

link 4
  44
5111
711116
  2336

link 5 // note this tile had to be rotated 180 degrees clockwise. 1point 3acres 论坛
  44. 一亩-三分-地,独家发布
5111
71111662
  233664
. 围观我们@1point 3 acres
link 6 // note this tile had to be rotated 270 degrees clockwise
  4448
511116
71111662
  233664. 围观我们@1point 3 acres
. 围观我们@1point 3 acres

评分

1

查看全部评分

Linzertorte 发表于 2015-9-9 05:07:08 | 显示全部楼层
python作弊大法!
1.jpg
回复 支持 0 反对 1

使用道具 举报

Linzertorte 发表于 2015-9-9 07:17:34 | 显示全部楼层
chenyy0527 发表于 2015-9-9 06:45. 留学申请论坛-一亩三分地
那是神马

这个中缀求值用divide-conquer比较简单。 扫描一遍,找到第一个+,然后左右分成两个子问题。找不到+,就找*. +,*都找不到说明是一个数。
回复 支持 1 反对 0

使用道具 举报

Linzertorte 发表于 2015-9-9 07:29:24 | 显示全部楼层
一亩三分地严打"顶""好贴""收藏了"之类的垃圾回复帖!被警告三次,系统会自动封杀ID!. Waral 博客有更多文章,

想支持楼主,请点击帖子下方的"好苗""分享""收藏"键,酌情给楼主加大米(系统不扣你自己的分)。. 1point 3acres 论坛
积分不够看不了帖子,请参考论坛导航里的"帮助","新手提纲"里有攒积分指南
  1. #include<iostream>
  2. #include<string.h>. Waral 博客有更多文章,
  3. using namespace std;.留学论坛-一亩-三分地
  4. int eval_sub(const char *s,const char *t){. 牛人云集,一亩三分地
  5.         const char *p;
  6.         for(p=s;p<t;p++). Waral 博客有更多文章,
  7.                 if(*p=='+') break;
  8.         if(p<t) return eval_sub(s,p)+eval_sub(p+1,t);
  9.         for(p=s;p<t;p++)
  10.                 if(*p=='*') break;
  11.         if(p<t) return eval_sub(s,p)*eval_sub(p+1,t);
    . 围观我们@1point 3 acres
  12.         int x = 0;. more info on 1point3acres
  13.         for(p=s;p<t;p++)
  14.                 x = x*10 + (*p-'0');
  15.         return x;
  16. }
  17. int eval(const char *expr){. 留学申请论坛-一亩三分地
  18.     int n = strlen(expr);
  19.     return eval_sub(expr,expr+n);
  20. }.1point3acres网
  21. int main(){
  22.     cout<<eval("3*4*56+2+3*7+490")<<endl;
  23.     cout<<eval("12*3+1+23*123*4")<<endl;
  24. }
  25.                   
复制代码
回复 支持 1 反对 0

使用道具 举报

霸王 发表于 2015-8-15 11:38:20 | 显示全部楼层
祝找工作顺利~
回复 支持 反对

使用道具 举报

 楼主| chenyy0527 发表于 2015-8-15 11:40:51 | 显示全部楼层
. more info on 1point3acres
谢谢!!
回复 支持 反对

使用道具 举报

houqingniao 发表于 2015-8-15 12:43:05 | 显示全部楼层
bless lz!
问一下, 这家是干啥的?
回复 支持 反对

使用道具 举报

 楼主| chenyy0527 发表于 2015-8-15 13:08:32 | 显示全部楼层
houqingniao 发表于 2015-8-15 12:43. 一亩-三分-地,独家发布
bless lz!
问一下, 这家是干啥的?
. visit 1point3acres for more.
游戏公司,大概15年历史,100+雇员这样,用的C
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

houqingniao 发表于 2015-8-16 12:00:01 | 显示全部楼层
赞lz.
.留学论坛-一亩-三分地
C 现在还真用不了了 哈哈
回复 支持 反对

使用道具 举报

 楼主| chenyy0527 发表于 2015-8-16 12:25:04 | 显示全部楼层
houqingniao 发表于 2015-8-16 12:00
赞lz.

C 现在还真用不了了 哈哈

我自己是写C++的,电面要求C,我下周末急补一下
回复 支持 反对

使用道具 举报

slm0803 发表于 2015-9-9 03:29:48 | 显示全部楼层
lz 这家电面怎么样?我也收到他们的小秘邮件说要online test,但是问了一下公司不sponsor,于是就不跟他们玩了。
回复 支持 反对

使用道具 举报

Linzertorte 发表于 2015-9-9 04:49:09 | 显示全部楼层
第一题要多少行代码啊?感觉挺长的。还要中缀求值,要双栈扫描吗?
回复 支持 反对

使用道具 举报

 楼主| chenyy0527 发表于 2015-9-9 06:45:07 | 显示全部楼层
slm0803 发表于 2015-9-9 03:29
lz 这家电面怎么样?我也收到他们的小秘邮件说要online test,但是问了一下公司不sponsor,于是就不跟他们 ...

我都不知道不sponsor ,他们家电面问了不少基层的东西,算法问的不多
回复 支持 反对

使用道具 举报

 楼主| chenyy0527 发表于 2015-9-9 06:45:31 | 显示全部楼层
Linzertorte 发表于 2015-9-9 04:49
第一题要多少行代码啊?感觉挺长的。还要中缀求值,要双栈扫描吗?

第一题大概60行左右,我是用回溯
回复 支持 反对

使用道具 举报

 楼主| chenyy0527 发表于 2015-9-9 06:45:39 | 显示全部楼层

那是神马
回复 支持 反对

使用道具 举报

Linzertorte 发表于 2015-9-9 07:16:15 | 显示全部楼层

你看看右边。用python写第一题12行就行了。
回复 支持 反对

使用道具 举报

 楼主| chenyy0527 发表于 2015-9-9 11:15:59 | 显示全部楼层
Linzertorte 发表于 2015-9-9 07:17
这个中缀求值用divide-conquer比较简单。 扫描一遍,找到第一个+,然后左右分成两个子问题。找不到+,就找 ...

对哦,好办法,我还是用的stack,弱弱的=。=
回复 支持 反对

使用道具 举报

 楼主| chenyy0527 发表于 2015-9-9 11:17:08 | 显示全部楼层
Linzertorte 发表于 2015-9-9 07:29. more info on 1point3acres
一亩三分地严打"顶""好贴""收藏了"之类的垃圾回复帖!被警告三次,系统会自动封杀ID!

想支持楼主,请点 ...

代码很棒诶,虽然前面那段关于大米的没怎么看懂0.0
但是好短好简洁,瞬间觉得我的代码弱爆了
回复 支持 反对

使用道具 举报

Linzertorte 发表于 2015-9-9 11:35:37 | 显示全部楼层
chenyy0527 发表于 2015-9-9 11:17
代码很棒诶,虽然前面那段关于大米的没怎么看懂0.0
但是好短好简洁,瞬间觉得我的代码弱爆了

楼主会不会python...
  1. def get_next(xs):.本文原创自1point3acres论坛
  2.   if xs=='':
  3.     yield ''
  4.     return. from: 1point3acres
  5.   for x in get_next(xs[1:]):
  6.     for h in ['','+','*']:. 一亩-三分-地,独家发布
  7.       yield h+xs[:1]+x
  8. def f(xs,val):
  9.   for x in get_next(xs[1:]):. 1point3acres
  10.     if eval(xs[:1]+x)==val:
  11.        return xs[:1]+x. 围观我们@1point 3 acres
  12.   return "no solution"

  13. print f('1234',10). 围观我们@1point 3 acres
  14. print f("1231231234",11353)
  15. print f("3456237490",1185)
复制代码
回复 支持 反对

使用道具 举报

 楼主| chenyy0527 发表于 2015-9-10 11:37:19 | 显示全部楼层
Linzertorte 发表于 2015-9-9 11:35. 留学申请论坛-一亩三分地
楼主会不会python...

并不会,但是看代码无所谓,都能看得懂
回复 支持 反对

使用道具 举报

本版积分规则

提醒:发帖可以选择内容隐藏,部分板块支持匿名发帖。请认真读完以下全部说明:

■隐藏内容方法: [hide=200]你想要隐藏的内容比如面经[/hide]
■意思是:用户积分低于200则看不到被隐藏的内容
■可以自行设置积分值,不建议太高(200以上太多人看不到),也不建议太低(那就没必要隐藏了)
■建议只隐藏关键内容,比如具体的面试题目、涉及隐私的信息,大部分内容没必要隐藏。
■微信/QQ/电子邮件等,为防止将来被骚扰甚至人肉,以论坛私信方式发给对方最安全。
■匿名发帖的板块和方法:http://www.1point3acres.com/bbs/thread-405991-1-1.html

关闭

一亩三分地推荐上一条 /5 下一条

手机版|小黑屋|一亩三分地论坛声明

custom counter

GMT+8, 2018-5-25 11:25

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

快速回复 返回顶部 返回列表