[职场感言] 工作一年了,聊聊三件事

一亩三分地论坛

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

uber电面面经

[复制链接] |试试Instant~ |关注本帖
ekco 发表于 2015-1-21 06:47:17 | 显示全部楼层 |阅读模式

2015(7-9月) 码农类General 博士 全职@uber - 网上海投 - 技术电面  | Other |

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

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

x
先谈了简历project,大概15分钟,然后发了个coderpad的连接做题。

1. 给定一个string,判断能否用这个string来组成一个palindrome。e.g. 'uber' --> False, 'aab' --> True, 'carecra' --> True

2. Follow up: 给出所有能够组成的palindrome,因为时间原因可以不用担心duplicates。(potential follow up就是去重了). Waral 博客有更多文章,

白人小哥很nice,第二题就是permutation,自己思路对了,但因为时间问题也没让写。剩下几分钟问问题,他刚入职6个月,所在team从入职时15人到现在56人。。。.1point3acres网



补充内容 (2015-1-20 20:37):
新农回复次数都有限制,求米啊

评分

4

查看全部评分

本帖被以下淘专辑推荐:

  • · uber|主题: 19, 订阅: 16
 楼主| ekco 发表于 2015-1-21 10:49:51 | 显示全部楼层
hjm0505 发表于 2015-1-20 21:18. Waral 博客有更多文章,
感觉题目还好,祝楼主拿到onsite~~

谢谢,题目不算难,希望能onsite
回复 支持 1 反对 0

使用道具 举报

圆梦梦剧场 发表于 2015-1-21 07:58:21 | 显示全部楼层
楼主第一题是不是统计一下每个字符的出现次数
如果只有0或1个字符出现奇数次,那么就能组成palindrome?
回复 支持 反对

使用道具 举报

houqingniao 发表于 2015-1-21 08:42:37 | 显示全部楼层
赞~~ 来源一亩.三分地论坛.
LZ 如何拿的面试?
回复 支持 反对

使用道具 举报

 楼主| ekco 发表于 2015-1-21 09:39:29 | 显示全部楼层
圆梦梦剧场 发表于 2015-1-20 18:58-google 1point3acres
楼主第一题是不是统计一下每个字符的出现次数
如果只有0或1个字符出现奇数次,那么就能组成palindrome?

对,我就是这么答得。用hashtable记录每个字符出现的频率,然后遍历hashtable算出频率为奇数的字符数,如果小于2就可以
回复 支持 反对

使用道具 举报

 楼主| ekco 发表于 2015-1-21 09:39:52 | 显示全部楼层
houqingniao 发表于 2015-1-20 19:42
. Waral 博客有更多文章,赞~~. more info on 1point3acres
LZ 如何拿的面试?
. more info on 1point3acres
直接网申的
回复 支持 反对

使用道具 举报

hjm0505 发表于 2015-1-21 10:18:55 | 显示全部楼层
感觉题目还好,祝楼主拿到onsite~~
回复 支持 反对

使用道具 举报

王者无敌Alex 发表于 2015-1-26 13:21:38 | 显示全部楼层
后天面,希望不难。。。
Mobile Apps Category (English)728x90
回复 支持 反对

使用道具 举报

 楼主| ekco 发表于 2015-1-26 22:14:13 | 显示全部楼层
王者无敌Alex 发表于 2015-1-26 00:21
后天面,希望不难。。。

看了些面经,感觉都不难,应该没问题的,加油!
回复 支持 反对

使用道具 举报

ycsung 发表于 2015-1-28 13:01:24 | 显示全部楼层
第二题的permutation请问如何写阿
回复 支持 反对

使用道具 举报

 楼主| ekco 发表于 2015-1-28 23:18:47 | 显示全部楼层
ycsung 发表于 2015-1-28 00:01
第二题的permutation请问如何写阿

就是去重的permutation,leetcode上有,recursion的话选取任意字符做头(或者尾),放在剩余字符串每个permutation的前面(或后面),重复的字符只能放一次。iteration的话,重复的字符只放在每个permutation中最后一个相同字符的后面
回复 支持 反对

使用道具 举报

houqingniao 发表于 2015-3-3 02:05:56 | 显示全部楼层
第一题Follow up: 给出所有能够组成的palindrome.留学论坛-一亩-三分地
能想到两头插的做法。感觉还挺烦啊 LZ咋做的? 能上代码不?
回复 支持 反对

使用道具 举报

kaimiku 发表于 2015-3-3 06:38:50 | 显示全部楼层
  1. #include <bits/stdc++.h>. 牛人云集,一亩三分地
  2. using namespace std;.留学论坛-一亩-三分地

  3. /**.留学论坛-一亩-三分地
  4. * If a given string can be permutated to form a palindrome string
  5. * I - string
  6. * O - bool, true/false. more info on 1point3acres
  7. */. 留学申请论坛-一亩三分地
  8. int is_palindrome(string &str) {
  9.   unordered_map<char, int> table;
  10.   for (char c : str)
  11.     table[c]++;
  12.   int o=0, e=0;
  13.   for (auto p : table) {. 1point 3acres 论坛
  14.     if (p.second&1) o++;.本文原创自1point3acres论坛
  15.     else            e++;
  16.   }
  17.   return o<2;
  18. }

  19. /**
    -google 1point3acres
  20. * Extract all even chars
  21. * I - string. Waral 博客有更多文章,
  22. * O - chars of first half of the potential palindrome string
  23. */. 一亩-三分-地,独家发布
  24. vector<char> half_string(string &str, char &mid) {
  25.   unordered_map<char, int> table;
  26.   for (char c : str)
  27.     table[c]++;
  28.   vector<char> ret;
  29.   for (auto p : table) {
  30.     if (!(p.second&1))
  31.       for (int i=0; i<p.second/2; i++)
  32.         ret.push_back(p.first);. 1point 3acres 论坛
  33.     else
  34.       mid=p.first;
  35.   }
  36.   return ret;. 留学申请论坛-一亩三分地
  37. }

  38. /**
  39. * Generate all possible palindrome strings.
  40. * I - string. Waral 博客有更多文章,
  41. */.本文原创自1point3acres论坛
  42. void generate_palindrome(int c, int n, vector<char> &a, string &p, int v[], char &mid) {
  43.   if (c==n) {
  44.     string pr=p;
  45.     reverse(pr.begin(), pr.end());
  46.     if (mid)
  47.       pr=mid+pr;. 1point 3acres 论坛
  48.     pr=p+pr;. Waral 博客有更多文章,
  49.     cout<<pr<<endl;
  50.   } else {
  51.     for (int i=0; i<n; i++) if (!v[a[i]]) {
  52.       v[a[i]]=1;
  53.       p[c]=a[i];
  54.       generate_palindrome(c+1, n, a, p, v, mid);
  55.       v[a[i]]=0;
  56.       while (i<n-1 && a[i+1]==a[i]) i++;
  57.     }. 围观我们@1point 3 acres
  58.   }
  59. }
  60. . 牛人云集,一亩三分地
  61. int main(void) {
  62.   string str;
  63.   cin>>str;
  64.   if (is_palindrome(str)) {
  65.     char mid=0;.1point3acres网
  66.     auto half=half_string(str, mid);.1point3acres网
  67.     sort(half.begin(), half.end());
  68.     int n=half.size();
  69.     int v[256];
  70.     memset(v, 0, sizeof v);
  71.     string palindrome(n, ' ');
  72.     generate_palindrome(0, n, half, palindrome, v, mid);
  73.   }
  74. } 来源一亩.三分地论坛.
复制代码
回复 支持 反对

使用道具 举报

 楼主| ekco 发表于 2015-3-3 11:18:34 | 显示全部楼层
houqingniao 发表于 2015-3-2 13:05. from: 1point3acres
第一题Follow up: 给出所有能够组成的palindrome
能想到两头插的做法。感觉还挺烦啊 LZ咋做的? 能上代码不 ...

选出一半数量的字符进行permutation就好了,permutation详见11楼
回复 支持 反对

使用道具 举报

houqingniao 发表于 2015-3-4 01:45:36 | 显示全部楼层
哦 没仔细看~~~. visit 1point3acres for more.
懂了 哈哈
回复 支持 反对

使用道具 举报

本版积分规则

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

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

关闭

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

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

custom counter

GMT+8, 2018-5-24 16:45

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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