由买买提看人间百态

topics

全部话题 - 话题: strlen
首页 上页 1 2 3 4 5 6 下页 末页 (共6页)
o*****e
发帖数: 99
1
问题的关键是每当前面单词选定一个字母,后面就不能重复了。
(不知道相邻单词能不能取同一个字母,假设不能)
那就是一个不复杂的递归问题了。
My pseudo code,
String array size n
S0 ~ Sn-1
Output out[0 ~ n-1]
void func(S[], out[], k) {
if (k==n) {
print(out);
return;
}
for(i in 0 ~ strlen(S[k]-1){
if (S[k][i] not in Out[0 ~ k-1]) {
out[k] = S[k][i];
func(S, out, k+1);
}
}
}
main:
func(S, out, 0)
How to design efficiency algorithm to find whether
char S[k][i] is in string Out[0 ~ k-1]
A simple hash ... 阅读全帖
o*****e
发帖数: 99
2
问题的关键是每当前面单词选定一个字母,后面就不能重复了。
(不知道相邻单词能不能取同一个字母,假设不能)
那就是一个不复杂的递归问题了。
My pseudo code,
String array size n
S0 ~ Sn-1
Output out[0 ~ n-1]
void func(S[], out[], k) {
if (k==n) {
print(out);
return;
}
for(i in 0 ~ strlen(S[k]-1){
if (S[k][i] not in Out[0 ~ k-1]) {
out[k] = S[k][i];
func(S, out, k+1);
}
}
}
main:
func(S, out, 0)
How to design efficiency algorithm to find whether
char S[k][i] is in string Out[0 ~ k-1]
A simple hash ... 阅读全帖
S**I
发帖数: 15689
3
来自主题: JobHunting版 - Microsoft interview question
#include
#include
void reverseStr(char str[], int begin, int end){

char temp;

while(end > begin){
temp = str[begin];
str[begin++] = str[end];
str[end--] = temp;
}
}
void reverseWord(char str[]){

int begin = 0, end = 0, length = (int) strlen(str) - 1;

reverseStr(str, begin, length);

while(end < length){

if(str[end] != ' '){

begin = end;

while(end... 阅读全帖
f*****y
发帖数: 444
4
来自主题: JobHunting版 - 碰到一个有意思的电面问题
Update: onsite 失落归来。不知道当时怎么这么晕菜,写一个strlen 函数忘了检查空
指针。犯个严重低级错误。pass 了。还有两个brain teaser, 一个太简单不说了,另
一个是称8球问题, careercup150上有。
r*******y
发帖数: 1081
5
if no NULL, then trouble
t*******i
发帖数: 4960
6
来自主题: JobHunting版 - Facebook被拒,写个面经
打的一个草稿,不处理负数
int NextP(int num){
if (num < 0)
throw -1;

char str[11];
itoa(num, str, 10);
if (strlen(str) == 1)
throw -1;
pos = len-1;
while (pos >= 1){
if (str[pos] > str[pos - 1])
break;
pos --;
}
if (pos == 0)
throw -1;
--pos;

int min = findLargerMin(str, pos + 1, len – 1, str[pos]);
swap(str, pos, min);
sort(str, pos + 1, len - 1);
return atoi(str);
}
b******e
发帖数: 3348
7
来自主题: JobHunting版 - [合集] Facebook被拒,写个面经
☆─────────────────────────────────────☆
littlebolt (i love bolt) 于 (Thu Jun 16 14:13:42 2011, 美东) 提到:
签了nda,phone和onsite写一起了
1.把一个字符串转成float,字符串可能是负的一百点三还有个指数E-09这样的
2.反转单链表..
3.给一个整数,求next permutation 就是数字组成一样的 但是比这个数大的最小的一
个数
4.一个很大的文件 怎么去掉duplicate
5. circular sorted array找元素
6.分层打印tree
7.一个字符串,每个字符可以替换成好多其他字符,打印所有可能
8.很简单的一个题,就是会用vector, set, map, pair这些玩意就行了
9.应该还有一个题,不难,但是怎么都想不起来了...
效率很高,拒信很快,move on啦~~
☆─────────────────────────────────────☆
gate (离开之后,再见以前) 于 (Thu Jun 16 14:17:... 阅读全帖
S**I
发帖数: 15689
8
来自主题: JobHunting版 - HELP: C programming question
#include
#include
#include
struct StringCount{
char s[100];
int count;
};
int compare(const void * a, const void * b){
return ((*(struct StringCount *)a).count < (*(struct StringCount *)b).count);
}
void printSortedWords(char * s, FILE * file){
int size = strlen(s);
struct StringCount sc[100];
int num = 0;
char newstr[100];
int i = 0;
for(; i < size; i++){
if(s[i] != ' '){
int j = 0;
while(s[i]... 阅读全帖
w****x
发帖数: 2483
9
来自主题: JobHunting版 - 问个amazon面试题
int ClacTarget(int nLen, int nIndex)
{
assert(nLen > 0 && nIndex > 0 && nLen > nIndex);
if (nIndex < nLen/2)
return 2 * nIndex;
return (nIndex - nLen/2) * 2 + 1;
}
char* InplaceConvert(char* str)
{
if (NULL == str)
return NULL;
int nLen = strlen(str);
if (0 == nLen || nLen%2 != 0)
return str;
int nCount = nLen - 2;
for (int i = 1; i < nLen && nCount > 0; i += 2)
{
int nCur = ClacTarget(nLen, i);
char cTmp = str[nCur];
... 阅读全帖
a***r
发帖数: 93
10
这题如果用DP来做,哪位给分析一下什么是subproblem?
【 以下文字转载自 Programming 讨论区 】
发信人: minisand (老婆是A+海博), 信区: Programming
标 题: 请教一个字符串比较排序的问题
发信站: BBS 未名空间站 (Mon Nov 9 16:35:46 2009, 美东)
之前有人贴出了常见的那个求Maximum repetitive substring的代码,如下:
void MaxDuplicatedSubstring(char *input, char *result)
{
int length = strlen(input);
char **substrings = new char**[length];
for (int i=0; i < length; i++)
substrings[i] = input + i;
qsort(substrings, length, sizeof(char*), (int (*)(const void*, const void*
))strcmp);
... 阅读全帖
q**p
发帖数: 147
11
来自主题: JobHunting版 - 问两个题
1,
void newBuffer(char* outBuffer, size_t sz) {
outBuffer = new char[sz];
}
int main() {
const char* kung = "KUNG";
char* foo;
size_t len = strlen(kung);
newBuffer(foo, len);
memset(foo, 0, len+1);
strncpy(foo, kung, len);
cout << foo << endl;
}
这个可以编译,但是有bug,运行之后知道是foo的问题,具体不太明白,求指点
2,
B is a class inherited from A.
B *myPointer = new B();
A *myOtherPointer = myPointer;
printf(“%x”, myPointer);
printf(“%x”, myOtherPointer);
这段代码的两个... 阅读全帖
s*******f
发帖数: 1114
12
来自主题: JobHunting版 - 贡献两道的面试题

void GetAllComb_(char *str, vector *ret){
static vector vc;
if (!*str){
ret->push_back(string(vc.begin(), vc.end()));
return;
}
char *p = str + 1;
while (*p == *str)
++p;
GetAllComb_(p, ret);
for (int i = 0; i < p - str; ++i){
vc.push_back(*str);
GetAllComb_(p, ret);
}
while (!vc.empty() && vc.back() == *str)
vc.pop_back();
}
void GetAllComb(char *str, vector *ret){
if (!str)
re... 阅读全帖
s*******f
发帖数: 1114
13
来自主题: JobHunting版 - 贡献两道的面试题

void GetAllComb_(char *str, vector *ret){
static vector vc;
if (!*str){
ret->push_back(string(vc.begin(), vc.end()));
return;
}
char *p = str + 1;
while (*p == *str)
++p;
GetAllComb_(p, ret);
for (int i = 0; i < p - str; ++i){
vc.push_back(*str);
GetAllComb_(p, ret);
}
while (!vc.empty() && vc.back() == *str)
vc.pop_back();
}
void GetAllComb(char *str, vector *ret){
if (!str)
re... 阅读全帖
g*********e
发帖数: 14401
14
来自主题: JobHunting版 - google电面杯具,贡献题目

,
false
I didn't quite understand your post.
I mean
foo(string){
if(strlen(string)==1) {
if string exist return true;
else return false;
}
else if(string don't exist) return false;
else return foo(tring) | foo(sring)...;
}
so if a string "abc" doesn;'t exist, we don't bother to check ab, ac, bc
bas
r*******n
发帖数: 3020
15
来自主题: JobHunting版 - google电面杯具,贡献题目
俺给你想法一样,
优化方法, 把中间结果放掉hashtable里,
中间结果是满足条件的word, 不用再调用函数判断了,
如果在hashtable就返回真.
foo(string){
if(strlen(string)==1) {
if string exist return true;
else return false;
}
else if(string don't exist) return false;
else return foo(tring) | foo(sring)...;
}
g*********e
发帖数: 14401
16
来自主题: JobHunting版 - google电面杯具,贡献题目

,
false
I didn't quite understand your post.
I mean
foo(string){
if(strlen(string)==1) {
if string exist return true;
else return false;
}
else if(string don't exist) return false;
else return foo(tring) | foo(sring)...;
}
so if a string "abc" doesn;'t exist, we don't bother to check ab, ac, bc
bas
r*******n
发帖数: 3020
17
来自主题: JobHunting版 - google电面杯具,贡献题目
俺给你想法一样,
优化方法, 把中间结果放掉hashtable里,
中间结果是满足条件的word, 不用再调用函数判断了,
如果在hashtable就返回真.
foo(string){
if(strlen(string)==1) {
if string exist return true;
else return false;
}
else if(string don't exist) return false;
else return foo(tring) | foo(sring)...;
}
s******n
发帖数: 226
18
来自主题: JobHunting版 - Microsof bing onsite面经疑问
简单写一下把
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.
}
}
}
}
k***t
发帖数: 276
19
来自主题: JobHunting版 - L二电面据,附面经
题目其实很简单,自己摆乌龙了。细节如下。
虽然连on-site都没拿到,个人感觉,作为第一次电面,基本达到操练面试的目的。自
我介绍,项目表达要言简意赅。Coding要冷静,不紧张,确保看清题目,自我检查code
要细。
与大家分享面经/经历。也希望大家给comment。Code是我从collabedit上直接贴过来的
。欢迎comment,帮我提高。谢谢。
一电面:老美。
前半部分是简历上Performance Tuning的各种Projects的细节;
后半部分是Website Performance的各种问题。
基本对答如流,获面试人认同。并说我们网站增长快,急需你这样有Performance方面
经验的人。Highly recommend for the next step.
二电面:老印。题目其实很简单,自己摆乌龙了。
开始讲Projects,老印问了一个简历上Resource Leakage Finding的东西。
回答不够简洁清晰,偏冗长。老印试图澄清,最后彻底澄清。花了一些时间。
后半个小时,两道Coding题:
1。判断string是否数字?如1.2。并写TestCa... 阅读全帖
s*******y
发帖数: 105
20
来自主题: JobHunting版 - Exposed上一道string permutation的题
求一个string的所有的permutation. C code如下:
int permutations(char *str)
{
int length, i, *used;
char *out;
length = strlen(str);
out = (char *)malloc(length+1);
if(!out)
return 0;
out[length] = '\0';
used = (int*)malloc(sizeof(int)*length);
if(!used)
return 0;
for(i=0;i used[i]=0;
DoPermute(str, out, used, length, 0);
free(out);
free(used);
return 1;
}
void DoPermute(char *str, char* out, int* used, int length, int recursLev)
{
int i;
if(recursLev==l... 阅读全帖
b*****c
发帖数: 1103
21
String Similarity
为啥米KMP会超时呢,不是死循环,我测过100000的,只过了4/10 test case
int test_num;
char str[100024];
int F[100024];
long long ans;
void FailureFunction(char P[], int F[],int m){
int i,j;
F[0]=0; // assignment is important!
j=0;
i=1;
while(i if(P[i]==P[j]){
F[i]=j+1;
i++;
j++;
}else if(j>0){
j=F[j-1];
}else {
F[i]=0;
i++;
}
}
}
void solve(int m)
{
int i=m;
int... 阅读全帖
f*******t
发帖数: 7549
22
平衡括号的题可以用贪心法做吧
#include
#include
#include
#include
#define INVALIDCHAR -1
using namespace std;
char *balance(char *str)
{
int len = strlen(str);
if(len < 1)
return NULL;

char *buff = (char*)calloc(len + 1, 1);
stack left;
for(int i = 0; i < len; i++) {
if(str[i] == '(')
left.push(i);
else if(str[i] == ')') {
if(left.empty()) {
buff[i] = INVALIDCHAR;
co... 阅读全帖
k***t
发帖数: 276
23
看到一个 Space O(1)的,写了一下。
不过"(ab(xy)u)2)" -> "(ab(xyu)2)"而不是(ab(xy)u)2)" -> "(ab(xy)u)2"。
#define INVD -1
void balance (char *a) {
if (!a || !*a) return;
int l=0, u=(int)strlen(a)-1;
while (1) {
while (l<=u && a[l]!='(') {
if (a[l]==')') a[l]=INVD;
l++;
}
if (l>u) break;
while (u>=l && a[u]!=')') {
if (a[u]=='(') a[u]=INVD;
u--;
}
if (l>u) break;
l++; u--;
}
char *p=a;
bool dirty=false;
while (*a) {
... 阅读全帖
w****x
发帖数: 2483
24
来自主题: JobHunting版 - 大家看看我写的这个itoa有没有bug
const char* myitoa(int num, char str[])
{
assert(a);
char* pIterBeg = str;
if (num < 0)
{
num = -num;
*pIterBeg++ = '-';
}
//use long not short to avoid INT_MIN overflow
unsigned int numshort = num;
char* pIter = pIterBeg;
while (true)
{
*pIter++ = numshort%10 + '0';
numshort = numshort/10;
if (numshort == 0) break;
}
*pIter = 0;
int nLen = strlen(pIterBeg);
assert(nLen > 0);
char* pIterEnd = ... 阅读全帖
S**I
发帖数: 15689
25
来自主题: JobHunting版 - [合集] 收到G家拒信,发面经
☆─────────────────────────────────────☆
recursive (递归) 于 (Mon Apr 11 10:56:49 2011, 美东) 提到:
大半夜收到HR的thank you note。不用管什么NDA了
本人ECE fresh PhD,背景是电路/EDA,跟G业务基本没什么关系
同学内部推荐的,很简单的一次电面就给了onsite
题都不难,但是自己没把握好机会,出了一些小bug。
总的感觉,出错就是硬伤,宁可从最简单的算法写起,也不能出错。
电面:
1,Skip list, http://en.wikipedia.org/wiki/Skip_list
写code实现struct skip_list * find(struct skip_list *head, int value)
2,sorted array with repeated elements
for given element, find out its range.
e.g. A A B B B B B C C D D E F G, given B, the out... 阅读全帖
h*c
发帖数: 1859
26
来自主题: JobHunting版 - 问个Print null的问题
puts calls strlen
s*******f
发帖数: 1114
27
来自主题: JobHunting版 - facebook一题
//码遍本版
//inside for LOOP:
//1st round: check (ling)(mind)(rabo)(ofooowingdingbarrwingmonkeypoundcake
//2nd round: check l(ingm)(indr)(aboo)(fooowingdingbarrwingmonkeypoundcake
//...
//this can avoid double check, and, O(n) time, for slice window
string SubStrWordsGreat(const char *str, const vector &vs){
map ms;
int len = strlen(str);
const char *end = str + len;
int lensub = 0;
if (vs.size() == 0)
return "";
int sz = vs[0].size();
for (ve... 阅读全帖
h*****g
发帖数: 312
28
来自主题: JobHunting版 - 攒人品之facebook电面面经
写了一个,有错误请指正~~
//copy on write
class String
{
private:
char *str;
int len;
public:
String():str(0),len(0)
{

}
String(char *p)
{
len=strlen(p);
char *tm=new char(len+2);
memset(tm,0,len+2);
str=tm+1;
strncpy(str,p,len+1);
}
String(const String &ms)
{
len=ms.len;
str=ms.str;
++(str[-1]);
}
Strin... 阅读全帖
h*****g
发帖数: 312
29
来自主题: JobHunting版 - 攒人品之facebook电面面经
写了一个,有错误请指正~~
//copy on write
class String
{
private:
char *str;
int len;
public:
String():str(0),len(0)
{

}
String(char *p)
{
len=strlen(p);
char *tm=new char(len+2);
memset(tm,0,len+2);
str=tm+1;
strncpy(str,p,len+1);
}
String(const String &ms)
{
len=ms.len;
str=ms.str;
++(str[-1]);
}
Strin... 阅读全帖
d****n
发帖数: 1637
30
来自主题: JobHunting版 - 昨天的F家店面
差不多用了30分钟
#define BSZ 4096
char buffer[BSZ];//buffer same size as 4096
int curr=BSZ-1; //current position read in buffer
int eof=0; //eof flag
extern char * read4096();
char *getline(){
char *s; //return string
int i, ssz=0; //size of s
for(;;){
if (!eof){
if (curr==(BSZ-1)) {
strcpy(buffer, read4096()); //read API
curr=0;
if (strlen(buffer)<4096 ) e... 阅读全帖
l*********8
发帖数: 4642
31
来自主题: JobHunting版 - 贡献一道G家的面试题
bool Convert(char * buf, int bufSize)
{
int length = strlen(buf);
int newLength = length;
for (int i=0; i if (buf[i] == 'A')
newLength--;
else if(buf[i] == 'B')
newLength++;
if (newLength > bufSize - 1) return false;
int w = newLength-1;
for (int r = length-1; r>=0; r--) {
if(buf[r] != 'A')
buf[w--] = buf[r];

if (buf[r] == 'B')
buf[w--] = buf[r];
}
buf[newLength] = '\0';
return true;
}
s****e
发帖数: 638
32
来自主题: JobHunting版 - 一道面试题:数组 in-place shuffle
下面这个是O(n) 不知道这样做行不行。
#include
#include
#include
using namespace std;
void shuffle(char* A)
{
int size = strlen(A);
int i=1;
while(i if (A[i] & 0x80) {
i++;
continue;
}
int j=i;
int j2;
while(true){
if ( j < size/2 ) j2 = j*2;
else j2 = 2*(j-size/2)+1;
if (j2<=i) break;
swap(A[i], A[j2]);
A[j2] |= 0x80;
j=j2;
}
i++;
}
for (int i=0; i }
int ... 阅读全帖
q***y
发帖数: 236
33
来自主题: JobHunting版 - 被thank you的fb电面面经
不清楚,贴出code大家分析吧。注释部分是后来加的。
unsigned int num_valid_decodings(char const* n_string) {
if (!n_string) return 0;
int n = strlen(n_string);
if (n==1) {
if(n_string[0]=='0') return 0; // not valid
else return 1;
}
vector num(n, 0);
char *p = (char *) n_string;
if (p[0] == '0') return 0; // not valid
else num[0] = 1;
if (p[0]=='1' ) num[1]=2;
else if (p[0]=='2' && p[1]<='6') num[1]=2;
else num[1] = 1;
for (int i=2; i ... 阅读全帖
q***y
发帖数: 236
34
来自主题: JobHunting版 - 被thank you的fb电面面经
起始条件有点问题,改了一下。
unsigned int num_valid_decodings(char const* n_string) {
if (!n_string) return 0;
int n = strlen(n_string);
if (n==1) {
if(n_string[0]=='0') return 0; // not valid
else return 1;
}
vector num(n, 0);
char *p = (char *) n_string;
if (p[0] == '0') return 0; // not valid
else num[0] = 1;
if (p[1]!='0') num[1]+=num[0];
if (p[0]=='1' || p[0]=='2' && p[1]<='6') num[1]++;
for (int i=2; i if (p[i]!='0') num[... 阅读全帖
w****x
发帖数: 2483
35
来自主题: JobHunting版 - 被thank you的fb电面面经
int _inner_ways(const char* pStr)
{
if (*pStr == 0)
return 1;
if (*pStr <= '0' || *pStr > '9')
return 0;
int n = _inner_ways(pStr+1);
if ((*pStr == '1' && *(pStr + 1) >= '0' && *(pStr + 1) <= '9')
|| (*pStr == '2' && *(pStr + 1) >= '0' && *(pStr + 1) <= '6'))
n += _inner_ways(pStr+2);
return n;
}
int GetWays(const char* pStr)
{
if (NULL == pStr || *pStr == 0)
return 0;
return _inner_ways(pStr);
}
int GetWaysDP(const char* pStr)
... 阅读全帖
f*******n
发帖数: 12623
36
来自主题: JobHunting版 - 问一个memory allocate/release的问题
你是这里出错:
char *newstr = new char[strlen(str)];
...
newstr[k] = '\0';
strcpy(str, newstr);
b*****e
发帖数: 474
37
来自主题: JobHunting版 - 热腾腾的twitter电面经
brutal force O(N*N) answer:
assuming input string a with strlen N.
int begin, end, i;
int len[N], maxlen=0;
for (i=0; i< 2*N-1; i++ ) {
// start from middle
begin = i/2;
end = (i+1)/2;
len[i] = 0;
while ( begin>=0 && end len[i]+= (begin--==end++)? 1: 2;
if ( len[i] > maxlen ) maxlen = len[i];
}
output maxlen;
may be this can be optimized to reach O(N)
g**********t
发帖数: 475
38
如果最后一个字符用'\0'标记结尾的话,可以不用传字符串的长度,然后用strlen得到
数组长度。
G******i
发帖数: 5226
39
☆─────────────────────────────────────☆
viisa (viiiiiisa) 于 (Fri Dec 23 01:33:02 2011, 美东) 提到:
之前都不知道还有如此方便的网站,
随便在上面做了几道题目,竟然有很不错的公司主动联系我给电面,比 refer 效率高
多了。做5道题目就可以申Facebook, Dropbox 等公司了
下月6号还有个比赛 http://codesprint.interviewstreet.com/recruit/challenges/
☆─────────────────────────────────────☆
quantx (X矿工) 于 (Fri Dec 23 01:39:55 2011, 美东) 提到:
啥公司?

☆─────────────────────────────────────☆
viisa (viiiiiisa) 于 (Fri Dec 23 01:54:43 2011, 美东) 提到:
这里有列表,里面的一个自己感兴趣的公司
http://blog.inter... 阅读全帖
l****c
发帖数: 838
40
来自主题: JobHunting版 - C的fscanf的问题 (转载)
You should read in the string and parse.
You don't know how long the first part string is or how long the number is.
So if you define:
char tempprice[10];
char ticker[10];
You have the risk of buffer overflow.
Here is my solution. I debug it as I wrote it, so it is not optimized.
it is pure C. You can get result with 2 lines of perl or python code
============================
#include
#include
#include
int main()
{
char *str = "GOOD|89.34";
char *ptoken, *... 阅读全帖
w****x
发帖数: 2483
41
来自主题: JobHunting版 - 刚才重新回顾了一下那题
struct NODE
{
vector vecGUID;
NODE* nodes[256];

NODE() { memset(nodes, 0, sizeof(nodes)); }
};
void _inner_get_guid(NODE* pNode, const char* str, int k, vector& vec)
{
if (NULL == pNode)
return;
if (k <= 0)
{
vec = pNode->vecGUID;
return;
}
_inner_get_guid(pNode->nodes[*str], str+1, k-1, vec);
}
vector getGUID(const char* str, NODE* pRoot, int k)
{
vector vecRet;
if (NULL == pRoot || NULL == str || *str == 0 ... 阅读全帖
w****x
发帖数: 2483
42
来自主题: JobHunting版 - 罗马转数字,数字转罗马问题

//Turn Roman number to decimal
//I(1), V(5), X(10), L(50), C(100), D(500), M(1000)
int GetNum(char c)
{
if (c == 'I' || c == 'i')
return 1;
else if (c == 'V' || c == 'v')
return 5;
else if (c == 'X' || c == 'x')
return 10;
else if (c == 'L' || c == 'l')
return 50;
else if (c == 'C' || c == 'c')
return 100;
else if (c == 'D' || c == 'd')
return 500;
else if (c == 'M' || c == 'm')
return 1000;

return 0;
}
... 阅读全帖
l*********8
发帖数: 4642
43
来自主题: JobHunting版 - 发个Twitter的面试题
我写一个 (还没有考虑“”的问题,好像挺复杂)
bool removeComment(char * s)
{
char *r = s, *w = s;
while (r && *r){
if ( !strncmp(r, "/*", 2) ) {
r = strstr(r+2, "*/");
r = (r!=NULL) ? r+2 : r;
} else if ( !strncmp(r, "//", 2) ) {
r = strchr(r+2, '\n');
r = (r!=NULL) ? r : s+strlen(s);
} else {
*w++ = *r++;
}
}
if (w != NULL)
*w = '\0';
return r!=NULL;
}
h*******e
发帖数: 1377
44
来自主题: JobHunting版 - 发个Twitter的面试题
2哥的算法可以手动split 就是 i == strLen || isreturn(str[i]) isreturn(str[i-
1]) 不同时候 check 一下 substr(str, segStart, i - segStart ) 把 相应的字符串
拿出来检查
同一行如果先遇到了 // /* 记录下 startPos。 和startType // 期待第一个 /n /*
期待第一个 */ 字符串 内移动 在字符串内保留一个 movPos
每次 遇到 // 前 /n 后 和 / * */不移动 movPos 不移动,否则str[movPos++] =
当前的值 就是one pass的, by the way twitter 离我们公司不远:)那个地方在
twitter 搬过去之后有了很多 穿戴整齐的人,不像以前San Francisco tenderloin街
区到处都是homeless到处游荡了。
Q*******e
发帖数: 939
45
来自主题: JobHunting版 - 50行code能解决addbinary 问题么
看来面霸都是用Java/C++
如果Valuof, strlen, Reverse
都自己写, 怎么可能
搞到20行内
b***m
发帖数: 5987
46

嗯,这个我看到了,我的版本是这样:
// caller has to free memory allocated
char *string_reverse2(const char *string)
{
if( !string ) return NULL;
int len = strlen(string);
char *res = (char *)malloc(len + 1);
if( !res ) return NULL;

char *str = (char *)string + len - 1;
while( str >= string )
{
*res = *str;
res++;
str--;
}
*res = '\0';
return res;
}
l*********8
发帖数: 4642
47
char * string_reverse1(char *string)
{
if (string) {
for(int i=0, j=strlen(string)-1; i < j; i++, j--)
swap(string[i], string[j]);
}
return string;
}
char *string_reverse2(const char *string)
{
return string_reverse1(strdup(string));
}
w****x
发帖数: 2483
48
来自主题: JobHunting版 - 谷歌面经
struct NODE
{
string str;
NODE* pLft;
NODE* pRgt;
NODE(const char* szStr = "") : str(szStr), pLft(NULL), pRgt(NULL) {}
};
void serialize(NODE* pNode, char*& p)
{
if (p == NULL) return;
if (pNode == NULL)
{
*((int*)p) = 0;
p += sizeof(int);
return;
}

int nLen = pNode->str.length();
*((int*)p) = 1;
p += sizeof(int);
strcpy(p, pNode->str.c_str());
p += nLen+1;

serialize(pNode->pLft, p);
serialize(pNode->pRgt... 阅读全帖
t*********h
发帖数: 941
49
来自主题: JobHunting版 - G phone interview
void foo(char* s) {
if(!*s) return;
int end[2], start[2], chars[2];
int maxlen=2,maxstart=0,i,n=strlen(s),p;
if(n<3) {printf("%s\n",s);}
start[0]=0;end[0]=0;chars[0]=s[0];
if(s[1]==s[0]) {
start[1]=0;end[1]=1;chars[1]=chars[0];
} else {
start[1]=1;end[1]=1;chars[1]=s[1];
}
for(i=2;i if(s[i]!=chars[0]&&s[i]!=chars[1]) {
p=end[0] chars[p]=s[i];
start[p]=i;
start[1-p]=end[p]+1;
end[p]=i;
} else {
p=(chars[0]=... 阅读全帖
h********g
发帖数: 496
50
来自主题: JobHunting版 - G phone interview
我也来一个。发现这个题目其实现场写不容易,细节很容易忽略。算法很简单,可还是
写了半个小时,怎么办?
void f(char*s, char*dest){
int set[256]={0};
int i=0, len=strlen(s);
int count=0, maxWin=0;
int l=0, r=len; //local window edges
int ll, rr; //global window edges

while(i if(count<2 || set[s[i]]){
r=i;
set[s[i]]++;
i++;
if(!set[s[i]]) count++;
if(maxWin maxWin=r-l+1;
ll=l;
... 阅读全帖
首页 上页 1 2 3 4 5 6 下页 末页 (共6页)