
Cracking the coding interview
onyas
这个作者很懒,什么都没留下…
展开
-
不使用别的变量交换两个变量的值
好老的题了,,不过还是学习了一下异或如下代码所示:#include void swap1(int& a,int& b){ a = b-a; b = b-a; a = a+b;}void swap2(int& a,int& b){ a = a^b; b = a^b;//b=a^b=a^b^b=a; a = a^b;//a=a^b=a^b^a=b;}int mai原创 2013-04-24 21:14:10 · 970 阅读 · 0 评论 -
把整数A转化成B,所需要改变的二进制位的个数是多少?
/* 把整数A转化成B,所需要改变的二进制位的个数是多少? 思路很简单,若要把A转化成B,查看二进制形式有多少个位不一样, 所以用亦或就可以搞定,A^B,相同为0,不同为1,所以不同位则 为1,只要查看A^B中有多少个1就可以了。如何查看有多少个1呢?? 我们知道按位与都是1时才为1,否则为0,所以只要C不为0,就一直跟1按位与,(从最右开始一位一位的比对下去) 如果当前位是1,则c原创 2013-05-04 15:00:00 · 1510 阅读 · 0 评论 -
苹果面试逻辑题
苹果公司在招聘员工时,会向求职者问一些“可汗学院”(Khan Academy)提出的考验智商的谜题。你可能没听说过“可汗学院”,但“可汗学院”的谜题被苹果采用一定是有其道理的。可汗学院由孟加拉裔美国人萨尔曼•可汗(Salman Kahan)创立,是一家由谷歌和比尔&梅琳达•盖茨基金会背后支持的教育性非营利组织,主旨在于利用网络影片进行免费授课,目前已经有关于数学、历史、金融、物理、化学、生物、天文转载 2013-06-11 11:11:29 · 1091 阅读 · 0 评论 -
把一个字符串的空格替换成20%
当然用Java或C#,C++中自带的库函数很轻松就可以实现,这里用C语言,没用库函数的实现/* 把一个字符串的空格替换成20%*/#include #define maxLength 100int main(){ char str[maxLength]; int i,countSpace=0,strLength,newLength,temp; gets(str);原创 2013-05-15 17:46:02 · 926 阅读 · 0 评论 -
打印包含n个括号的所有合法的组合
Implement an algorithm to print all valid (e.g., properly opened and closed) combinations of n-pairs of parentheses.打印包含n个括号的所有合法的组合#include using namespace std;const int n = 100;char a[原创 2013-05-06 23:14:01 · 1147 阅读 · 0 评论 -
C语言字符串反转的实现
#include void reverse(char *str){ char *end = str; char temp; if(str) { while(*end) end++; --end; while(str<end) { temp = *str; *str++ = *end; *end-- = temp; } }}int mai原创 2013-05-12 22:28:04 · 1336 阅读 · 0 评论 -
不用+号实现两个数相加
/* 不用+号实现两个数的相加 思路: 先用10进数表示 449 +598 第一步,两数相加,但不进位得 937 第二步,两数相加,只进位, 0110 第三步,前两步的结果相加,不进位得 047 第四步,前两步的结果相加,只进位得1000 第五步,3,4步的结果相加,不进位得1047 第六步,3,4步的结果相加,只进位得0000,所以结束。 二原创 2013-05-19 22:44:39 · 2556 阅读 · 0 评论 -
C语言用指针实现将字符串里的单词顺序倒置
将字符串里词顺序倒置,如"Times New Roman"变为"Roman New Times"。以空格为分隔符。还比如把"Welcome to India" 变成"India to Welcome"/* 思路: 比如把hello world反转,做法是先把它整体反转,然后在一个单词一个单词的反转 变成dlorw olleh 然后world hello*/#原创 2013-05-13 15:13:11 · 4246 阅读 · 0 评论 -
异或,按位与
一、异或异或也叫半加运算,其运算法则相当于不带进位的二进制加法:二进制下用1表示真,0表示假,则异或的运算法则为:0异或0=0,1异或0=1,0异或1=1,1异或1=0(同为0,异为1),这些法则与加法是相同的,只是不带进位。异或运算法则:1. a ^ a = 02. a ^ b = b ^ a3. a ^ b ^ c = a ^ (b ^ c) = (a ^ b)原创 2013-05-04 23:04:05 · 2240 阅读 · 0 评论 -
n & (n-1)
按位与的知识n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,先看一个简单的例子:n = 10100(二进制),则(n-1) = 10011 ==》n&(n-1) = 10000可以看到原本最低位为1的那位变为0。弄明白了n&(n-1)的作用,那它有哪些应用?---------------------------------------------------原创 2013-05-03 23:54:21 · 11554 阅读 · 2 评论