一亩三分地论坛

 找回密码
 获取更多干货,去instant注册!

扫码关注一亩三分地公众号
查看: 1940|回复: 16
收起左侧

hbk oa

[复制链接] |试试Instant~ |关注本帖
douya 发表于 2015-3-9 06:02:43 | 显示全部楼层 |阅读模式

2015(7-9月) 码农类 硕士 实习@HBK - 校园招聘会 - 在线笔试 |Other

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

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

x
这个公司真神奇,
先是电面做题,然后发oa,
oa不难,但给了4个小时。
而且就一个testcase。
. From 1point 3acres bbs
简单说下思路,
判断是不是palindronic based on 17, 直接每次除17,保存余数,更新x=x/17。再比较所有余数是不是对称的。
2 based 是不是有17个1,直接用x&1判断最后一位是不是1,x<<1,向左移动接着判断。.鐣欏璁哄潧-涓浜-涓夊垎鍦

不知道这一个testcase过了是不是就有下一轮了。。。。


                               
登录/注册后可看大图


my.PNG
nathanwong 发表于 2015-3-9 07:35:16 | 显示全部楼层
是HBK Capital Management 么?是挺奇葩的流程
回复 支持 反对

使用道具 举报

 楼主| douya 发表于 2015-3-9 09:24:18 | 显示全部楼层
nathanwong 发表于 2015-3-9 07:35
是HBK Capital Management 么?是挺奇葩的流程

嗯,是的
回复 支持 反对

使用道具 举报

xieqilu1989 发表于 2015-3-13 02:16:42 | 显示全部楼层
卧槽,居然这公司OA还有不同的题目,我的不是这个题目
回复 支持 反对

使用道具 举报

 楼主| douya 发表于 2015-3-13 09:35:52 | 显示全部楼层
xieqilu1989 发表于 2015-3-13 02:16
卧槽,居然这公司OA还有不同的题目,我的不是这个题目

是的,不一样啊。
回复 支持 反对

使用道具 举报

@南岸的风 发表于 2015-7-9 09:02:30 | 显示全部楼层
请问楼主最后结果如何?多谢!
回复 支持 反对

使用道具 举报

 楼主| douya 发表于 2015-7-11 12:58:11 | 显示全部楼层
@南岸的风 发表于 2015-7-9 09:02. 鍥磋鎴戜滑@1point 3 acres
请问楼主最后结果如何?多谢!

on site 跪了
回复 支持 反对

使用道具 举报

@南岸的风 发表于 2015-7-12 01:06:05 | 显示全部楼层
加油!题目里说next number 是指比131071大的数吗?可不可以就是检查二进制表示是18个1, 19个1的数,以此类推,对每一个验证是不是palindrom?
回复 支持 反对

使用道具 举报

ydxdad 发表于 2015-8-9 14:19:32 | 显示全部楼层
楼主,这题找到unsigned long long也没找到啊,请问你是咋解决的啊
回复 支持 反对

使用道具 举报

 楼主| douya 发表于 2015-8-30 12:24:18 | 显示全部楼层
ydxdad 发表于 2015-8-9 14:19
楼主,这题找到unsigned long long也没找到啊,请问你是咋解决的啊

就按我说的那么做就好,他只有一个testcase,不大
回复 支持 反对

使用道具 举报

ydxdad 发表于 2015-9-2 14:07:12 | 显示全部楼层
douya 发表于 2015-8-30 12:24.鐣欏璁哄潧-涓浜-涓夊垎鍦
就按我说的那么做就好,他只有一个testcase,不大

谢谢了。。。顺便update一下,我onsite已挂,OA的时候没考到这个题。不过权当刷题自己做了下,没按你说的做,稍微麻烦了点,不过可能快那么一点-google 1point3acres
  1. #include <iostream>. visit 1point3acres.com for more.
  2. #include <climits>
  3. #include <string>. Waral 鍗氬鏈夋洿澶氭枃绔,
  4. using namespace std;

  5. /**
  6. * algorithm class to find the number with:
  7. * 1) base of 17 representation is palindrome
  8. * 2) base of 2 representation has 17 consective 1 bits
  9. */
  10. class findNextPNumber {-google 1point3acres
  11. public:
  12. /**
  13.   * @string input, input string representing a number using 17 as base
  14.   *       which has p form. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  15.   * @return unsigned long long, return the next 17 based palidoromed number
  16.   *           which has at least 17 consecutive 1 bits
  17.   */-google 1point3acres
  18. unsigned long long findNextPNumber17Bits(const string& input) {
  19.   string cur = input;
  20.   string next;
  21.   while (1) {
  22.    next = nextPNumber(cur);
  23.    unsigned long long num = decode(next);
  24.    if (num == ULLONG_MAX) //.鏈枃鍘熷垱鑷1point3acres璁哄潧
  25.     return 0;.鐣欏璁哄潧-涓浜-涓夊垎鍦
  26.    if (count_consecutive_ones(num) >= 17) {.1point3acres缃
  27.     return num;.鐣欏璁哄潧-涓浜-涓夊垎鍦
  28.    }
  29.    cur = next;
  30.   }
  31.   return 0;. from: 1point3acres.com/bbs
  32. }
  33. private:
  34. /**
  35.   * Test if an input string contains all 'G's (16)
  36.   * if all is 'G', return true
  37.   * else return false
  38.   */
  39. bool isAll16s(const string &num) {
  40.   int n = num.size();
  41.   for (int i = 0; i < n; i++) {
  42.    if (num[i] != 'g')
  43.     return false;
  44.   }
  45.   return true;
  46. }. Waral 鍗氬鏈夋洿澶氭枃绔,
  47. ;
  48. /**
  49.   *  input a string with 17 as base and output. From 1point 3acres bbs
  50.   *  the value as 10 base
  51.   */
  52. unsigned long long decode(const string& in) {
  53.   unsigned long long result = 0;
  54.   int n = in.size();
  55.   for (int i = 0; i < n; i++) {
  56.    if (isdigit(in[i]))
  57.     result = result * 17 + in[i] - '0';
  58.    else.鐣欏璁哄潧-涓浜-涓夊垎鍦
  59.     result = result * 17 + (10 + in[i] - 'a');
  60.   }
  61.   return result;.鐣欏璁哄潧-涓浜-涓夊垎鍦
  62. }
  63. ;
  64. . 1point 3acres 璁哄潧
  65. /**
  66.   *  count the maximum consecutive bits of 1s
  67.   */. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  68. int count_consecutive_ones(unsigned long long input) {
  69.   int count = 0;. visit 1point3acres.com for more.
  70.   while (input) {. 鐗涗汉浜戦泦,涓浜╀笁鍒嗗湴
  71.    input = (input & (input << 1));. more info on 1point3acres.com
  72.    count++;
  73.   }
  74.   return count;
  75. }

  76. /**
  77.   * generate next p number
  78.   */
  79. string nextPNumber(const string& num) {
  80.   if (isAll16s(num))
  81.    return '1' + string(num.size(), '0') + '1';
  82.   int n = num.size();
  83.   int mid = n / 2;
  84.   int carry = 1;
  85.   int i = mid - 1;
  86.   int nums[n];
  87.   // decode of special chars
  88.   for (int i = 0; i < n; i++) {
  89.    if (isdigit(num[i]))
  90.     nums[i] = num[i] - '0';
  91.    else
  92.     nums[i] = 10 + num[i] - 'a';. 鍥磋鎴戜滑@1point 3 acres
  93.   }
    . 1point3acres.com/bbs
  94.   int j;
  95.   // If there are odd digits, then increment.鐣欏璁哄潧-涓浜-涓夊垎鍦
  96.   // the middle digit and store the carry
  97.   if (n % 2 == 1) {
  98.    nums[mid] += carry;
  99.    carry = nums[mid] / 17;. From 1point 3acres bbs
  100.    nums[mid] %= 17;
  101.    j = mid + 1;
  102.   } else 鏉ユ簮涓浜.涓夊垎鍦拌鍧.
  103.    j = mid;
  104. .鏈枃鍘熷垱鑷1point3acres璁哄潧
  105.   // Add 1 to the rightmost digit of the left side, propagate the carry
  106.   // towards MSB digit and simultaneously copying mirror of the left side
  107.   // to the right side.. more info on 1point3acres.com
  108.   while (i >= 0) {
  109.    nums[i] += carry;.1point3acres缃
  110.    carry = nums[i] / 17;
  111.    nums[i] %= 17;
  112.    nums[j++] = nums[i--]; // copy mirror to right
  113.   }. visit 1point3acres.com for more.
  114.   // encode to special chars
  115.   string result;-google 1point3acres
  116.   for (int i = 0; i < n; i++) {. From 1point 3acres bbs
  117.    if (nums[i] < 10)
  118.     result += (nums[i] + '0');
  119.    else
  120.     result += (nums[i] - 10 + 'a');
  121.   }
  122.   return result;
  123. }
  124. ;

  125. };. visit 1point3acres.com for more.
  126. int main() {. 鐣欏鐢宠璁哄潧-涓浜╀笁鍒嗗湴
  127. string cur = "19b91";
  128. findNextPNumber solver;
  129. cout << solver.findNextPNumber17Bits(cur);
  130. return 0;
  131. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| douya 发表于 2015-9-3 00:37:28 | 显示全部楼层
ydxdad 发表于 2015-9-2 14:07
谢谢了。。。顺便update一下,我onsite已挂,OA的时候没考到这个题。不过权当刷题自己做了下,没按你说的 ...

嗯嗯,加油!我之前onsite也跪了,挺奇怪的公司
回复 支持 反对

使用道具 举报

liuchangyu1988 发表于 2015-12-11 10:36:46 | 显示全部楼层
xieqilu1989 发表于 2015-3-13 02:16
卧槽,居然这公司OA还有不同的题目,我的不是这个题目
. visit 1point3acres.com for more.
请问你的是什么题目啊?能分享一下吗?我也马上要做他的OA了。
回复 支持 反对

使用道具 举报

liuchangyu1988 发表于 2015-12-11 10:50:01 | 显示全部楼层
请问楼主,那个testcase是那个数字啊,想自己写一下看看对不对。谢谢!
回复 支持 反对

使用道具 举报

liuchangyu1988 发表于 2015-12-11 11:03:31 | 显示全部楼层
ydxdad 发表于 2015-9-2 14:07
谢谢了。。。顺便update一下,我onsite已挂,OA的时候没考到这个题。不过权当刷题自己做了下,没按你说的 ...

请问你OA是什么题呀?能分享一下吗?谢谢
回复 支持 反对

使用道具 举报

MS_Joe 发表于 2016-1-10 05:08:47 | 显示全部楼层
请问这个“下一个具有这两个性质的数”,是说比这个大的数,在17-based里是palidromic的,在二进制里全是"1"的数吗?还是说在2进制*中间*至少有一段是带有17个1的,也就是说可以是11001111111111111111111111111111111111111100000这样的,只要中间有一段有连续17个1。还是说这两个性质可以是比如再19-based里是palindromic的,在2进制里有19个1?
回复 支持 反对

使用道具 举报

aiweiwei 发表于 2016-3-2 06:12:13 | 显示全部楼层
请问楼主你投的什么职位呀. From 1point 3acres bbs
回复 支持 反对

使用道具 举报

本版积分规则

请点这里访问我们的新网站:一亩三分地Instant.

Instant搜索更强大,不扣积分,内容组织的更好更整洁!目前仍在beta版本,努力完善中!反馈请点这里

关闭

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

手机版|小黑屋|一亩三分地论坛声明 ( 沪ICP备11015994号 )

custom counter

GMT+8, 2016-12-8 07:02

Powered by Discuz! X3

© 2001-2013 Comsenz Inc. Design By HUXTeam

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