avatar
c*z
1
已经悲剧
题1:anagram of a palindrome 要求O(N)
int isAnagrmaOfPalindrome(char *string){
unsigned int bitc = 0, i = 0;
int out = 0;
while(*string){
i = *(string++) - 'a';
bitc ^= (1 << i);
}
out = (int)(bitc & (bitc - 1));
return !out;
}
题2:重新排序整数的digits使其最大化 (e.g. 3515 -> 5531) 要求O(1)
int largestSibling(int N) {
int digit;
int temp = 0;
int output = 0;
for (digit=9;digit>0;digit--)
for (temp=N;temp>0;temp/=10)
if (temp%10==digit) output = output + digit*10;
return output;
}
感想:这和data scientist有什么关系嘛?
avatar
Y*e
2
你遇到的题怎么都那么难啊?

【在 c***z 的大作中提到】
: 已经悲剧
: 题1:anagram of a palindrome 要求O(N)
: int isAnagrmaOfPalindrome(char *string){
: unsigned int bitc = 0, i = 0;
: int out = 0;
: while(*string){
: i = *(string++) - 'a';
: bitc ^= (1 << i);
: }
: out = (int)(bitc & (bitc - 1));

avatar
j*g
3
你都用C++写的?用python会简单一点吧

【在 c***z 的大作中提到】
: 已经悲剧
: 题1:anagram of a palindrome 要求O(N)
: int isAnagrmaOfPalindrome(char *string){
: unsigned int bitc = 0, i = 0;
: int out = 0;
: while(*string){
: i = *(string++) - 'a';
: bitc ^= (1 << i);
: }
: out = (int)(bitc & (bitc - 1));

avatar
l*m
4
FLG其实没有DS,很多码公都是做ML的Phd

【在 Y***e 的大作中提到】
: 你遇到的题怎么都那么难啊?
avatar
i*a
5
都是码工的题-_-!!!

1));="" :="" ...................="">

【在 c***z 的大作中提到】
: 已经悲剧
: 题1:anagram of a palindrome 要求O(N)
: int isAnagrmaOfPalindrome(char *string){
: unsigned int bitc = 0, i = 0;
: int out = 0;
: while(*string){
: i = *(string++) - 'a';
: bitc ^= (1 << i);
: }
: out = (int)(bitc & (bitc - 1));

avatar
t*u
6
第二道简单啊
0-9 做成bucket
先扫一遍,原数,把对应的digit扔到bucket里面去
然后从最大的bucket往外拿出来填高位。。。。。

【在 c***z 的大作中提到】
: 已经悲剧
: 题1:anagram of a palindrome 要求O(N)
: int isAnagrmaOfPalindrome(char *string){
: unsigned int bitc = 0, i = 0;
: int out = 0;
: while(*string){
: i = *(string++) - 'a';
: bitc ^= (1 << i);
: }
: out = (int)(bitc & (bitc - 1));

avatar
O*y
7

都是算法题,符合DS的要求呀

【在 c***z 的大作中提到】
: 已经悲剧
: 题1:anagram of a palindrome 要求O(N)
: int isAnagrmaOfPalindrome(char *string){
: unsigned int bitc = 0, i = 0;
: int out = 0;
: while(*string){
: i = *(string++) - 'a';
: bitc ^= (1 << i);
: }
: out = (int)(bitc & (bitc - 1));

avatar
z*e
8
算法是优化,ds要从乱七八糟不make sense的数据中弄成make sense
算法其实不是特别重要,统计更重要
这种题也很扯蛋,估计是面官压根不懂ds

【在 O*********y 的大作中提到】
:
: 都是算法题,符合DS的要求呀

avatar
B*g
9
几家高大上就是面算法,不管啥职位

【在 c***z 的大作中提到】
: 已经悲剧
: 题1:anagram of a palindrome 要求O(N)
: int isAnagrmaOfPalindrome(char *string){
: unsigned int bitc = 0, i = 0;
: int out = 0;
: while(*string){
: i = *(string++) - 'a';
: bitc ^= (1 << i);
: }
: out = (int)(bitc & (bitc - 1));

avatar
w*m
10
第二题要考虑负数
avatar
l*s
11
google and facebook should have real DS positions as they are in marketing
business.

【在 l*******m 的大作中提到】
: FLG其实没有DS,很多码公都是做ML的Phd
avatar
c*z
12
来自jobvite的坑爹的HR说面SQL
codility的坑爹test给了这两题
我含着眼泪做完,以为能run就ok
submit了也没个comfirmation email什么的
最后自己抽抽了,给了各反馈说这test完全没有意义
综合以上,要是能过就是奇迹了
avatar
q*c
13

这样行嘛? 你这样是架设所有字母最多出现一次吧。这样的话, 如果有字母出现 4
次, 和出现两次, 无法区别啊。

【在 c***z 的大作中提到】
: 已经悲剧
: 题1:anagram of a palindrome 要求O(N)
: int isAnagrmaOfPalindrome(char *string){
: unsigned int bitc = 0, i = 0;
: int out = 0;
: while(*string){
: i = *(string++) - 'a';
: bitc ^= (1 << i);
: }
: out = (int)(bitc & (bitc - 1));

avatar
o*o
14
第二个不能用0--9的hash表么?

【在 c***z 的大作中提到】
: 已经悲剧
: 题1:anagram of a palindrome 要求O(N)
: int isAnagrmaOfPalindrome(char *string){
: unsigned int bitc = 0, i = 0;
: int out = 0;
: while(*string){
: i = *(string++) - 'a';
: bitc ^= (1 << i);
: }
: out = (int)(bitc & (bitc - 1));

avatar
M*9
15
你给的反馈狠给力。。。

【在 c***z 的大作中提到】
: 来自jobvite的坑爹的HR说面SQL
: codility的坑爹test给了这两题
: 我含着眼泪做完,以为能run就ok
: submit了也没个comfirmation email什么的
: 最后自己抽抽了,给了各反馈说这test完全没有意义
: 综合以上,要是能过就是奇迹了

avatar
h*7
16
正解
所以说FLG最应该感谢的是NSF。
一个L1 penalty水过多少PhD码工,想想就觉得可笑。

【在 l*******m 的大作中提到】
: FLG其实没有DS,很多码公都是做ML的Phd
avatar
d*4
17
这是什么意思?
phd码工只问L1 penalty? 和NSF什么关系?

【在 h*****7 的大作中提到】
: 正解
: 所以说FLG最应该感谢的是NSF。
: 一个L1 penalty水过多少PhD码工,想想就觉得可笑。

avatar
j*g
18
他是说compressive sensing是个大坑,无数NSF的人在填坑

【在 d******4 的大作中提到】
: 这是什么意思?
: phd码工只问L1 penalty? 和NSF什么关系?

avatar
O*y
19

如果偏重统计会不会和data analyst相似?我觉得DS会对编程要求很高(我最近在练习
编程)。认为算法远比naive programming重要,公司更喜欢optimal的程序

【在 z****e 的大作中提到】
: 算法是优化,ds要从乱七八糟不make sense的数据中弄成make sense
: 算法其实不是特别重要,统计更重要
: 这种题也很扯蛋,估计是面官压根不懂ds

avatar
m*a
20
第一题的code,O(N)的算法
int isPalindrome(char *string){
int starting,ending;
starting=0;/*starting character of the string*/
ending=strlen(string)-1;/*ending character*/
while (startingif (string[starting]==string[ending]){
starting++;
ending--;
} else return 0; /*This is not a Palindrome*/
}
return 1; /*This is a Palindrome*/
}
avatar
a*k
21
弱问 T家是哪家?
avatar
m*a
22
第二题大家给个O(1)的算法吧?
我想到
N%10 parse出每个数字
然后给每个数字拍个序,从大到小
也要O(Nln(N))
avatar
t*u
23
这个我觉得就算扫描一遍每位上面的digit都要O(logN)吧
不然怎么知道最大的digit是多少呢

【在 m*********a 的大作中提到】
: 第二题大家给个O(1)的算法吧?
: 我想到
: N%10 parse出每个数字
: 然后给每个数字拍个序,从大到小
: 也要O(Nln(N))

avatar
m*a
24
for positive integer>0
int i,temp;
int bucket[10]; /*create bucket to store of the total number of each 0-9*/
for (i=0;i<10;i++) bucket[i]=0;/*initiate bucket to 0*/
temp=N;
while (temp){
digit=temp%10;
bucket[digit]++;
temp/=10;
}
上面就要O(N)吧,是吧?
然后从bucket中取值,从大到小

【在 t*********u 的大作中提到】
: 这个我觉得就算扫描一遍每位上面的digit都要O(logN)吧
: 不然怎么知道最大的digit是多少呢

avatar
m*a
25
int largestSibling(int N){
int i,temp,digit;
int bucket[10]; /*create bucket to store of the total number of each 0-9
*/
for (i=0;i<10;i++) bucket[i]=0;/*initiate bucket to 0*/
temp=N;
while (temp){
digit=temp%10;
bucket[digit]++;
temp/=10;
} /*count the number of each digits*/
int j,output=0;
for (i=9;i>=0;i--)
for (j=bucket[i];j>0;j--){
output=output*10+i;
} /*read out the new largest number*/
return output;
}
这个估计不符合要求,和数字的大小有关
负数的话,反正读output 从bucket[0]到bucket[9]
avatar
t*u
26
yes

int largestSibling(int N){
int i,temp,digit;
int bucket[10]; /*create bucket to store of the total number of each 0-9
*/
for (i=0;i<10;i++) bucket[i]=0;/*initiate bucket to 0*/
temp=N;
while (temp){
digit=temp%10;
bucket[digit]++;
temp/=10;
} /*count the number of each digits*/
int j,output=0;
for (i=9;i>=0;i--)
for (j=bucket[i];j>0;j--){
output=output*10+i;
} /*read out the new largest number*/
return output;
}
这个估计不符合要求,和数字的大小有关
负数的话,反正读output 从bucket[0]到bucket[9]

【在 m*********a 的大作中提到】
: int largestSibling(int N){
: int i,temp,digit;
: int bucket[10]; /*create bucket to store of the total number of each 0-9
: */
: for (i=0;i<10;i++) bucket[i]=0;/*initiate bucket to 0*/
: temp=N;
: while (temp){
: digit=temp%10;
: bucket[digit]++;
: temp/=10;

avatar
s*h
27
我也不懂啥叫anagram,就搜了一下定义,发现是个很通用的编程面试题。
本来不难,就是算每个字符单双数。
然后找到这个页面,学习了:http://blog.csdn.net/liyonn8744/article/details/8139681
LZ应该也是做题前听说过这个搞法吧?
不然
bitc ^= (1 << i);

out = (int)(bitc & (bitc - 1));
都不容易想到

【在 m*********a 的大作中提到】
: 第一题的code,O(N)的算法
: int isPalindrome(char *string){
: int starting,ending;
: starting=0;/*starting character of the string*/
: ending=strlen(string)-1;/*ending character*/
: while (starting: if (string[starting]==string[ending]){
: starting++;
: ending--;
: } else return 0; /*This is not a Palindrome*/

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。