K******g 发帖数: 1870 | 1 char* func( char* a, const char* b )
{
while( *a )
{
char *s = a, *t = b;
while( (*s++ == *t++) && *s && *t );
if( *t == 0 )
return a;
a++;
}
return 0;
}
The above code was written to search for the first instance
of string "b" inside of string "a."
a. 请问以上代码是否有问题?解释
b. 怎么提高效率?
Question #2: |
|
t*****5 发帖数: 22 | 2 1.
char* func( char* a, const char* b )
{
char* s=a;
for(;*s==*b;s++,b++)
if(*s=='\0')
return 0;
return a;
} |
|
b*******y 发帖数: 32 | 3 拿到一个bloomberg电面,赶紧准备了一些面试题贴在这里,算是临阵磨枪吧。
===C++===
$. Which one of the following statements accurately
expresses the disadvantages of making a function inline?
a) Inline functions always make the program bigger.
b) Inline functions always make the program slower.
c) Inline functions always make the program bigger and slower.
d) It is not possible to take the address of an inline function.
e) It increases compile-time dependencies.
$. Give scenarios in which even when specifying a func as
inline w |
|
l********n 发帖数: 54 | 4 应该是的,不过如何来解释line 2-5。这个是因为什么rule呢?
我本来的想法是只有下面的exact match才行。
class Bar : public Foo
{
void virtual func() throw (int, float);
} |
|
c***2 发帖数: 838 | 5 file a.c
int var=10;
file b.c
float var;
int func(...){
...
var=2.5;
...
}
then compile two file together, what will happen to var? |
|
y*******o 发帖数: 6632 | 6 NO PROBLEM FOR in c file at all.
will be a problem in h file if included.
if in file b.c
file b.c
extern int var;//cause a collusion the int var is available in b.c now
float var;
int func(...){
...
var=2.5;
...
} |
|
e**********6 发帖数: 78 | 7 题目不难,两道题都是coding,是个印度人打来的。由于面试之后他就立即把文档里的
内容都剪切出来了,我现在没有原题,大概描述一下。
1,假设告诉你某只股票连续一段时间每天的收盘价格,写一个程序返回最佳的购买和
抛售日。(coding)
2,给一个字符串,打印出这个字符串所有的permutation。(coding)
我很shock的是,这个人不知道C++的pass by reference。我写了func(int &i){i=...}
之后他居然要求我改为*i=...。然后我提示他我用的是pass by reference,好像他也
不明白,然后问我:你不想改变外面的值吗?
另外,我第二题用了一个很obvious的递归,但是他却绕进去想不明白。。要求我把递
归的所有步骤都写出来给他看,然后我就写了,他还是纠结于一个问题不明白。。在我
反复解释之后,他突然恍然大悟。。
不知道是不是面试官有意装糊涂然后观察我的表述能力的?
这次题目都很简单。祝大家成功! |
|
l*****a 发帖数: 14598 | 8 step1: sort input string
step2:
for(int i=start;i
{
if(i!=start)&&(str[i]==str[i-1]) continue;
swap(str[i],str[start]);
func(i+1,str);
swap(str[i],str[start]);
} |
|
m*****k 发帖数: 731 | 9 //Node class
class MyObj
{
int m_value;
MyObj m_next = null;
static MyObj head = null;
static MyObj tail = null;
MyObj(int x)
{
m_value = x;
}
public String toString()
{
return m_value + "";
}
//recurrsive func
static MyObj reverse(MyObj head)
{
MyObj next = head.m_next;
head.m_next = null;
if (next != null)
{
MyObj llast = reverse(next);
llast.m_next = head;
}
... 阅读全帖 |
|
g********t 发帖数: 39 | 10 今天刚和博通的一个印印经理面试,寒暄了几分钟,然后要求用邮件的方式立马回复给
他,基本都是c的题,题目是这样的:
Q1. void wait( int* p, int n )
{
while ((*p & (1 << n)) == 0);
}
1. What is the intention of the above code?
2. How could it be improved?
Q2. int test( int a )
{
return ((a - 1) & a) == 0;
}
Comment on its portability.
Q3.
char* func( char* a, const char* b )
{
while( *a )
{
char *s = a, *t = b;
while( (*s++ == *t++) && *s && *t );
if( *t == 0 )
return a;
a++;
}
return 0; ... 阅读全帖 |
|
i**********e 发帖数: 1145 | 11 Q3.
char* func( char* a, const char* b )
{
while( *a )
{
char *s = a, *t = b;
while( (*s++ == *t++) && *s && *t );
if( *t == 0 )
return a;
a++;
}
return 0;
}
Not sure if this
(*s++ == *t++) && *s && *t
is undefined behavior, since it is considered as one expression.
Even if we assume then second part of expression is evaluated as s and t are
both incremented, then if the last character in *t doesn't match with *s,
it quits the loo... 阅读全帖 |
|
g********t 发帖数: 39 | 12 今天刚和博通的一个印印经理面试,寒暄了几分钟,然后要求用邮件的方式立马回复给
他,基本都是c的题,题目是这样的:
Q1. void wait( int* p, int n )
{
while ((*p & (1 << n)) == 0);
}
1. What is the intention of the above code?
2. How could it be improved?
Q2. int test( int a )
{
return ((a - 1) & a) == 0;
}
Comment on its portability.
Q3.
char* func( char* a, const char* b )
{
while( *a )
{
char *s = a, *t = b;
while( (*s++ == *t++) && *s && *t );
if( *t == 0 )
return a;
a++;
}
return 0; ... 阅读全帖 |
|
i**********e 发帖数: 1145 | 13 Q3.
char* func( char* a, const char* b )
{
while( *a )
{
char *s = a, *t = b;
while( (*s++ == *t++) && *s && *t );
if( *t == 0 )
return a;
a++;
}
return 0;
}
Not sure if this
(*s++ == *t++) && *s && *t
is undefined behavior, since it is considered as one expression.
Even if we assume then second part of expression is evaluated as s and t are
both incremented, then if the last character in *t doesn't match with *s,
it quits the loo... 阅读全帖 |
|
b*****k 发帖数: 26 | 14 Q3.
char* func( char* a, const char* b )
{
char *s, *t;
while( *a )
{
while(*a != *b && *a ) a++;
if(*a==0)
return 0;
s = a+1;
t = b+1;
while( (*s++ == *t++) && *s && *t );
if( *t == 0 )
return a;
a++;
}
return 0;
} |
|
b*****k 发帖数: 26 | 15 Q3.
char* func( char* a, const char* b )
{
char *s, *t;
while( *a )
{
while(*a != *b && *a ) a++;
if(*a==0)
return 0;
s = a+1;
t = b+1;
while( (*s++ == *t++) && *s && *t );
if( *t == 0 )
return a;
a++;
}
return 0;
} |
|
t*******i 发帖数: 4960 | 16 攒点人品,回忆几道题
不用临时变量swap two int,用的是 ^ 操作
怎么同时往console和文件输出
函数的指针(类的函数)
constant pointer to constant value
memset
memcmp
func(p++)的结果,考的是传过去的值是 p 还是 p + 1
base class 只有一个带参数的ctor,derived class该怎么办
用什么函数把time_t变成字符串
std::remove_if用法
变量名 = new (...);
if (!变量名)
call a function; 我的答案是这个function永远不会被调用
bind2nd 出现了好几次,从来没用过的。
做题的感觉是脑子被驴踢了。 |
|
P*******b 发帖数: 1001 | 17 define a function that takes a string
void func(string s);
and then call this function with a char*
int main()
{
char* s = "test";
fun(s);
}
function fun() will get called.
do you know how this happens behind the scene? |
|
a********1 发帖数: 750 | 18 google explicit
explicit void func(string s);
explicit可以阻止这种行为的发生, |
|
w*******x 发帖数: 489 | 19 According to Effective C++ chapter 0:
This is called "Implicit type conversion"
Define the constructor with key word explicit "explict string(const char *)"
will prohibit the implicit type conversion, but you can still do an
explicit type conversion by call func(string("test")). |
|
b*****c 发帖数: 1103 | 20 你将public继承变成protected,
这样C的instance 只能访问C自己的func |
|
b*****c 发帖数: 1103 | 21 你将public继承变成protected,
这样C的instance 只能访问C自己的func |
|
l*****a 发帖数: 14598 | 22 你这是什么编译器?
我用Visual studio试了一下,没问题啊
而且C inherited from B and B already implement func()
no problem at all ah |
|
s******n 发帖数: 226 | 23 Func(index a, index b){
If( path[a,b]!= -1) return path[a,b]
If a>b
Return ms value
If a==b
Renturn w(a)
Else return min(function(a.right,b), function(a.down,b))+w(a); |
|
s******n 发帖数: 226 | 24 Func(index a, index b){
If( path[a,b]!= -1) return path[a,b]
If a>b
Return ms value
If a==b
Renturn w(a)
Else return min(function(a.right,b), function(a.down,b))+w(a); |
|
p*******y 发帖数: 21 | 25 1.怎么写char* func(void),考return by pointer to local variable.
2.read in a string of words separated by space. print out each word in
alphabetic order and its counts.
3. 25 horses problem
上来贡献一下。这个是fsd |
|
d********t 发帖数: 9628 | 26 能告诉我啥原理吗?我只知道用hash func.把key给map了,可能会有collision,不过
怎么implement啊? |
|
m*****k 发帖数: 731 | 27 阿家Prime组新鲜面经,刚面的,
本地猎头中午打电话说阿家 Prime组 some managers/engineers 今天在downtown, 问
有无兴趣去face to face,
鄙人几周前刚被阿家local组锯掉, 明知打这种没准备的仗更是必死无疑,但抱着学习
观摩,兼为本版效力的的态度还是去了。
白男A,
Q1. add 2 numbers, each made up by a linked list and least significant digit
ahead,
例如, 123 表示成 ->3->2->1
知道是老题,但我从没见过标准答案,现想的,
my solution, recursive func:
public Node sum(Node headerA, Node headerB, headerResult, tailResult, int
carrier)
boundary condition is when headerA and headerB are null && c == 0;
Q2.
client 1 need 7 servers fr... 阅读全帖 |
|
s******n 发帖数: 226 | 28 简单写一下把
input char a[n];
func(char* a){
int n = strlen(a);
int f[n];
for(int i=0;i
int max =0;
for(int j=i;j>=0;j--){
if(isWord(a,j,i) && f[j]+1>max){
max = f[j]+1; f[i] = max;
// prev array to bookkeep
// max can be defined using different standard.
}
}
}
} |
|
r****t 发帖数: 10904 | 29 in Python, for C(N,k) 这个是标准写法,至少 loop 到 min (k, N-k) 才对。
val = 1L
for j in xrange(min(k, N-k)):
val = (val * (N-j)) // (j+1) # j+1 because I started from 0
同时,对大组合数都应该用 gamma func 算才对。 |
|
c*****e 发帖数: 737 | 30 and how about
char s = '-'
then call your func with &s?
firstly, "-" is not a valid number, but you return 0.
second, it may access over boundary of memory as well. |
|
b***u 发帖数: 12010 | 31 哪家公司出的这么脑残的问题?c++规范真有规定call func时先eval最右的么? |
|
c*****e 发帖数: 737 | 32 这玩意,好像就是用个timer call back func,没啥技术含量的。你也可以用个queue
来存放req。
交易系统也有类似的控制,比如每分钟某股票交易次数要小于某个值,代码我看过就是
这么干的。 |
|
c**********e 发帖数: 2007 | 33 1.怎么写char* func(void),考return by pointer to local variable. |
|
c**********e 发帖数: 2007 | 34 Do you mean the following? Thanks.
char* func(void) {
return new char;
} |
|
g*********e 发帖数: 14401 | 35 楼上方法比较直白
用微积分的思想随机取也可以,distribution func. P(r=r')=2r'/R 半径=r的概率跟r
成正比
取完半径,再随机产生个角度,在圆环上取个点就行了。 |
|
C*O 发帖数: 389 | 36 对 。。。
不过
func(int* arr)
{
sizeof(arr)/sizeof(int) 返回是1,
} |
|
g*****e 发帖数: 282 | 37 这个题目不问hash func怎么设计?62进制很容易overflow的,原url长一点就挂了 |
|
g*****e 发帖数: 282 | 38 前面不是在讨论用62进制做hash func么?可能我理解错了。方便展开讲讲么?多谢 |
|
z*y 发帖数: 1311 | 39 const int &func (int a, int b) const;
what is the meaning of first "const" and last "const"?
what is the meaning of "&"? |
|
h****n 发帖数: 2094 | 40 Return value of the func is error code and another extra pointer for the
return integer value.
such
is |
|
A****e 发帖数: 310 | 41 二爷你说的是机器人那道题啊~
我还以为你说的是客户端请求每秒钟只发送10个的那个呢
请问那个客户端的怎么做呀?
是像27楼说的那样用timer call back func吗? |
|
A****e 发帖数: 310 | 42 二爷你说的是机器人那道题啊~
我还以为你说的是客户端请求每秒钟只发送10个的那个呢
请问那个客户端的怎么做呀?
是像27楼说的那样用timer call back func吗? |
|
j*****y 发帖数: 1071 | 43 调试了无数次,似乎搞了一个 work的, 花了两个小时阿。换作是我,当场悲剧的更惨。
string func(int a, int b)
{
bool negative = false;
if(a < 0)
{
negative = true;
a = -a;
}
if(b < 0)
{
if(negative)
{
negative = false;
}
else
{
negative = true;
}
b = -b;
}
int x = a / b;
int y... 阅读全帖 |
|
e***s 发帖数: 799 | 44 第二题最简单就是这样吧? 不知道有BUG没有
int func(int n){
for(int i = 1; i <= n; i++)
{
if(Rand() == 0)
return 0;
}
return 1;
} |
|
t****a 发帖数: 1212 | 45 天内,板上的包括二爷你在内的大牛多的是,我是菜鸟,啥都不会。
FP语言的高手,板上我看到过blaze写haskell,那才是牛。我只会Clojure和R。
Clojure还是现学的,有好多书也没看过呢。
Clojure跟c语言比较的话,感觉优势是多了一堆强力工具,比如迭代器,memoize递归
,lazy sequence,destruction形式的参数传递,可以节省定义很多变量,程序要短小
且清晰一些。 Clojure自带的list结构对链表,树,广义表之类的数据结构支持的非常
好,用它的各种list上的操作比如map, filter, etc可以用少量的语句实现一些这类的
算法。
跟C相比,Clojure写算法的劣势也很明显,首先是速度大概只有1/10,内存占用也很
糟糕;其次是这种语言用的是pure immutable的结构,取消了变量的概念,因此很多算
法里面需要反复修改一个变量的技巧就不能用了。Clojure当然也可以通过某些func来
support mutable的数据,不过那很丑,我也不想用。
如果你想学functional programming based alg... 阅读全帖 |
|
e****e 发帖数: 418 | 46 Question 2:
class MatrixPos{
int row;
int col;
}
// 不用Map, 用数组也行。
Map map = new HashMap();
map.put( 'A', new MatrixPos( 0, 0 ) );
...
map.put( 'Z', new MatrixPos( 5, 0 ) );
void func( String s, char c ) {
//不做参数检查了
print( c, s.charAt( 0 ) )
for ( int i = 0; i < s.length() - 1; i++ )
print( s.charAt( 0 ), s.charAt( 1 ) );
}
void print(char s, char e) {
MatrixPos sp = new MatrixPos( map.get( s ) );
MatrixPos ep = new MatrixPos( map.g... 阅读全帖 |
|
p*****p 发帖数: 379 | 47 例如funcA, funcB, funcC,funcA传C的名字到funcB由B调用C,java里能用invoke之类
的做到,C++貌似不行?当然用个hash_map记录名字到指针的对应是可以,但是B可能不
知道具体有哪些func |
|
p*****p 发帖数: 379 | 48 两个func:
calling sleep(2) will sleep for 2 seconds
calling sleep(5) -> 5 sec
can do nothing while asleep
achieve sleep(n) where n is an arbitrary natural number |
|
c********t 发帖数: 5706 | 49 如果你觉得Pair不好用,干脆用一个hash func
比如说 key = smaller_index * num_of_sentence + bigger_index
最终结果(i,j)=( key/num_of_sentence, key%num_of_sentence) |
|
s****A 发帖数: 80 | 50 看书上说nonconst variables are extern by default, but to make const variable
accessible to other files we must explicitly specify that it is extern.
这么说的话如果我有两个文件:
//file1.cpp
int a=10;
extern int b=11;
void func(){
extern int c=12;
}
//file2.cpp
#include
int main(){
extern int a,b,c;
std::cout<
}
输出会是什么?谢谢! |
|