由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 一道码公电面题(nvidia),怎么做
相关主题
another C interview question一个CS题目,大家帮我看一下吧
离奇的Amzaon第一轮电面L店面
C++ Q35: sizeof() (B20_20)"Hacking a G Interview"怎么有这样低级错?
砸了面试,发面题问一个面试问题
Figure out size of int without using sizeof()问一个bit operation的题目
google电面第一轮面经 求blesssome experience to share (4) --- cover letter
看到一个c的面试题,求教。我的bloomberg肯定没戏了,发点面试题攒人品吧
nvidia面试题CS 面试题总结(5)
相关话题的讨论汇总
话题: int话题: unsigned话题: return话题: string话题: result
进入JobHunting版参与讨论
1 (共1页)
a********3
发帖数: 14
1
“identify the number of 1s in an integer is odd or even”
z****e
发帖数: 54598
2
什么语言?
z****e
发帖数: 54598
3
java
public class Test {
public static boolean isOdd(int para){
String s = "" + para;
boolean result = false;
for(int i=0;i if(s.charAt(i)=='1') result = (result==true ? false:true );
}
return result;
}
public static void main(String[] args){

System.out.println(Test.isOdd(32011));
}
}
z*********8
发帖数: 2070
4
转成string的好处是?

【在 z****e 的大作中提到】
: java
: public class Test {
: public static boolean isOdd(int para){
: String s = "" + para;
: boolean result = false;
: for(int i=0;i: if(s.charAt(i)=='1') result = (result==true ? false:true );
: }
: return result;
: }

z****e
发帖数: 54598
5
循环好写啊

【在 z*********8 的大作中提到】
: 转成string的好处是?
n****n
发帖数: 117
6
因为赵老师不喜欢位操作。。。

【在 z*********8 的大作中提到】
: 转成string的好处是?
l*********8
发帖数: 4642
7
My two cents:
bool hasOddOnes(int n)
{
int k = sizeof(int) << 3;

while(k>>=1)
n ^= (n>>k);

return n & 1;
}
l******d
发帖数: 530
8
难道有什么pitfall?如果是10进制数的话,不就是连续的除以10,看个位数是否为1,
直到最高位变成个位吗?
b******t
发帖数: 965
9
当然是2进制了

【在 l******d 的大作中提到】
: 难道有什么pitfall?如果是10进制数的话,不就是连续的除以10,看个位数是否为1,
: 直到最高位变成个位吗?

g*********e
发帖数: 14401
10
bool oddOnes(unsigned n){
int count=0;
while(n){
n=n & (n-1);
count++;
}
return count % 2;
}
相关主题
google电面第一轮面经 求bless一个CS题目,大家帮我看一下吧
看到一个c的面试题,求教。L店面
nvidia面试题"Hacking a G Interview"怎么有这样低级错?
进入JobHunting版参与讨论
l******d
发帖数: 530
11
那就右移,比除以10更快

【在 b******t 的大作中提到】
: 当然是2进制了
l*********8
发帖数: 4642
12
your method is countOnes(n) % 2. When n has 32 ones, your iteration will
run 32 times.

【在 g*********e 的大作中提到】
: bool oddOnes(unsigned n){
: int count=0;
: while(n){
: n=n & (n-1);
: count++;
: }
: return count % 2;
: }

h****e
发帖数: 928
13
这篇文章是经典,讲了不少bit twiddling hacks:
http://graphics.stanford.edu/~seander/bithacks.html
有空就背下来吧。
c****p
发帖数: 6474
14
int bits_odd_even(int x)
{
//int LEN = 8 * sizeof(x);
//int i;
unsigned n;
n = (unsigned) x;
n = ((n&0xaaaaaaaaU)>>1) ^ (n&0x55555555U);
n = ((n&0x44444444U)>>2) ^ (n&0x11111111U);
n = ((n&0x10101010U)>>4) ^ (n&0x01010101U);
n = ((n&0x01000100U)>>8) ^ (n&0x00010001U);
n = ((n&0x00010000U)>>16) ^ (n&0x00000001U);
return n & 1;
}

【在 a********3 的大作中提到】
: “identify the number of 1s in an integer is odd or even”
w****x
发帖数: 2483
15

我k, 转成string啊...
直接1左移32次计数再%2得了, 太tricky的想不出来啊

【在 z****e 的大作中提到】
: java
: public class Test {
: public static boolean isOdd(int para){
: String s = "" + para;
: boolean result = false;
: for(int i=0;i: if(s.charAt(i)=='1') result = (result==true ? false:true );
: }
: return result;
: }

r*****e
发帖数: 792
16
这个解法我当时在看了wiki的解释后的感觉就是有人真TMD聪明啊。

【在 c****p 的大作中提到】
: int bits_odd_even(int x)
: {
: //int LEN = 8 * sizeof(x);
: //int i;
: unsigned n;
: n = (unsigned) x;
: n = ((n&0xaaaaaaaaU)>>1) ^ (n&0x55555555U);
: n = ((n&0x44444444U)>>2) ^ (n&0x11111111U);
: n = ((n&0x10101010U)>>4) ^ (n&0x01010101U);
: n = ((n&0x01000100U)>>8) ^ (n&0x00010001U);

N**********p
发帖数: 408
17
或者用xor

【在 g*********e 的大作中提到】
: bool oddOnes(unsigned n){
: int count=0;
: while(n){
: n=n & (n-1);
: count++;
: }
: return count % 2;
: }

a********3
发帖数: 14
18
“identify the number of 1s in an integer is odd or even”
z****e
发帖数: 54598
19
什么语言?
z****e
发帖数: 54598
20
java
public class Test {
public static boolean isOdd(int para){
String s = "" + para;
boolean result = false;
for(int i=0;i if(s.charAt(i)=='1') result = (result==true ? false:true );
}
return result;
}
public static void main(String[] args){

System.out.println(Test.isOdd(32011));
}
}
相关主题
问一个面试问题我的bloomberg肯定没戏了,发点面试题攒人品吧
问一个bit operation的题目CS 面试题总结(5)
some experience to share (4) --- cover letter贴几道某大公司的面试题
进入JobHunting版参与讨论
z*********8
发帖数: 2070
21
转成string的好处是?

【在 z****e 的大作中提到】
: java
: public class Test {
: public static boolean isOdd(int para){
: String s = "" + para;
: boolean result = false;
: for(int i=0;i: if(s.charAt(i)=='1') result = (result==true ? false:true );
: }
: return result;
: }

z****e
发帖数: 54598
22
循环好写啊

【在 z*********8 的大作中提到】
: 转成string的好处是?
n****n
发帖数: 117
23
因为赵老师不喜欢位操作。。。

【在 z*********8 的大作中提到】
: 转成string的好处是?
l*********8
发帖数: 4642
24
My two cents:
bool hasOddOnes(int n)
{
int k = sizeof(int) << 3;

while(k>>=1)
n ^= (n>>k);

return n & 1;
}
l******d
发帖数: 530
25
难道有什么pitfall?如果是10进制数的话,不就是连续的除以10,看个位数是否为1,
直到最高位变成个位吗?
b******t
发帖数: 965
26
当然是2进制了

【在 l******d 的大作中提到】
: 难道有什么pitfall?如果是10进制数的话,不就是连续的除以10,看个位数是否为1,
: 直到最高位变成个位吗?

g*********e
发帖数: 14401
27
bool oddOnes(unsigned n){
int count=0;
while(n){
n=n & (n-1);
count++;
}
return count % 2;
}
l******d
发帖数: 530
28
那就右移,比除以10更快

【在 b******t 的大作中提到】
: 当然是2进制了
l*********8
发帖数: 4642
29
your method is countOnes(n) % 2. When n has 32 ones, your iteration will
run 32 times.

【在 g*********e 的大作中提到】
: bool oddOnes(unsigned n){
: int count=0;
: while(n){
: n=n & (n-1);
: count++;
: }
: return count % 2;
: }

h****e
发帖数: 928
30
这篇文章是经典,讲了不少bit twiddling hacks:
http://graphics.stanford.edu/~seander/bithacks.html
有空就背下来吧。
相关主题
看一道面试题离奇的Amzaon第一轮电面
问2道面试题C++ Q35: sizeof() (B20_20)
another C interview question砸了面试,发面题
进入JobHunting版参与讨论
c****p
发帖数: 6474
31
int bits_odd_even(int x)
{
//int LEN = 8 * sizeof(x);
//int i;
unsigned n;
n = (unsigned) x;
n = ((n&0xaaaaaaaaU)>>1) ^ (n&0x55555555U);
n = ((n&0x44444444U)>>2) ^ (n&0x11111111U);
n = ((n&0x10101010U)>>4) ^ (n&0x01010101U);
n = ((n&0x01000100U)>>8) ^ (n&0x00010001U);
n = ((n&0x00010000U)>>16) ^ (n&0x00000001U);
return n & 1;
}

【在 a********3 的大作中提到】
: “identify the number of 1s in an integer is odd or even”
w****x
发帖数: 2483
32

我k, 转成string啊...
直接1左移32次计数再%2得了, 太tricky的想不出来啊

【在 z****e 的大作中提到】
: java
: public class Test {
: public static boolean isOdd(int para){
: String s = "" + para;
: boolean result = false;
: for(int i=0;i: if(s.charAt(i)=='1') result = (result==true ? false:true );
: }
: return result;
: }

r*****e
发帖数: 792
33
这个解法我当时在看了wiki的解释后的感觉就是有人真TMD聪明啊。

【在 c****p 的大作中提到】
: int bits_odd_even(int x)
: {
: //int LEN = 8 * sizeof(x);
: //int i;
: unsigned n;
: n = (unsigned) x;
: n = ((n&0xaaaaaaaaU)>>1) ^ (n&0x55555555U);
: n = ((n&0x44444444U)>>2) ^ (n&0x11111111U);
: n = ((n&0x10101010U)>>4) ^ (n&0x01010101U);
: n = ((n&0x01000100U)>>8) ^ (n&0x00010001U);

N**********p
发帖数: 408
34
或者用xor

【在 g*********e 的大作中提到】
: bool oddOnes(unsigned n){
: int count=0;
: while(n){
: n=n & (n-1);
: count++;
: }
: return count % 2;
: }

o****d
发帖数: 2835
35
这个怎么解释?

【在 l*********8 的大作中提到】
: My two cents:
: bool hasOddOnes(int n)
: {
: int k = sizeof(int) << 3;
:
: while(k>>=1)
: n ^= (n>>k);
:
: return n & 1;
: }

A*****i
发帖数: 3587
36
我次奥这个解法真的给跪了,要不是楼下有人说wiki能查到看一天也看不出为啥……

【在 c****p 的大作中提到】
: int bits_odd_even(int x)
: {
: //int LEN = 8 * sizeof(x);
: //int i;
: unsigned n;
: n = (unsigned) x;
: n = ((n&0xaaaaaaaaU)>>1) ^ (n&0x55555555U);
: n = ((n&0x44444444U)>>2) ^ (n&0x11111111U);
: n = ((n&0x10101010U)>>4) ^ (n&0x01010101U);
: n = ((n&0x01000100U)>>8) ^ (n&0x00010001U);

y****n
发帖数: 743
37
public static int Even(UInt64 x)
{
x ^= x >> 32;
x ^= x >> 16;
x ^= x >> 8;
x ^= x >> 4;
x ^= x >> 2;
x ^= x >> 1;
return (int)x & 1;
}
d**********x
发帖数: 4083
38
有两本书,一本是hacker's delight
另外一本是cs:app,第一章

【在 A*****i 的大作中提到】
: 我次奥这个解法真的给跪了,要不是楼下有人说wiki能查到看一天也看不出为啥……
t****t
发帖数: 6806
39
这个解法写得这么复杂是为了数1的个数用的(就近相加-->无进位干扰). 数奇偶的话直
接折半就可以了, 比这个快一点点.

【在 c****p 的大作中提到】
: int bits_odd_even(int x)
: {
: //int LEN = 8 * sizeof(x);
: //int i;
: unsigned n;
: n = (unsigned) x;
: n = ((n&0xaaaaaaaaU)>>1) ^ (n&0x55555555U);
: n = ((n&0x44444444U)>>2) ^ (n&0x11111111U);
: n = ((n&0x10101010U)>>4) ^ (n&0x01010101U);
: n = ((n&0x01000100U)>>8) ^ (n&0x00010001U);

1 (共1页)
进入JobHunting版参与讨论
相关主题
CS 面试题总结(5)Figure out size of int without using sizeof()
贴几道某大公司的面试题google电面第一轮面经 求bless
看一道面试题看到一个c的面试题,求教。
问2道面试题nvidia面试题
another C interview question一个CS题目,大家帮我看一下吧
离奇的Amzaon第一轮电面L店面
C++ Q35: sizeof() (B20_20)"Hacking a G Interview"怎么有这样低级错?
砸了面试,发面题问一个面试问题
相关话题的讨论汇总
话题: int话题: unsigned话题: return话题: string话题: result