RE: Interview question

46 отговора 1708 прегледа
в отговор на matematic #41

RE: Interview question

abe ti kak gi izkluchwash tiq elementi. q dai edin primer, che ne shto ne moga da zagreq

Отговор
в отговор на matematic #42

Re: RE: Interview question

Da predpolojem che broeneto e krygovo ABCDEFABCDEFABCD..., pri mahane na m-ti element broeneto produljawa ot sledwashtiq, posledniq element e n-1 a purwiq 0. Reshenieto bi trqbwalo da e: n-1 puti mahash m-tiq element, kato premestwash sledwashtite sled nego s edna poziciq napred. Naprimer ako n=6, m=6 (toest m=5). Togawa:
index=5 => abcdef
index=0 => abcde_
index=1 => bcde__
index=0 => bde___
index=1 => de____
index=* => d_____
Prowerih kwo stawa ako m=2 i rezultata ne e 1 wseki put. Naprimer za m=2 (toest m=1) i n = 6:
abcdef
a_cdef
a_c_ef
a_c_e_
a___e_
____e_

Nadolu sum napisal koda(da wi kaja ne sum go testwal, moje da ima greshchici):
int Foo(int n, int m){
int i;
//I ukazatel kum masiw sys indeksite
int (*arr)[];
//I pomni index-a koito trqbwa da mahnem
int index = 0;

if (m <= 0 || n <= 0)
//I kalpawi stoinosti za m ili n
return -2;
//I be da si ima edin try..exept blok,
//I ako new operator-a bugne
__try {
arr = new int[n];
//I zapiswame indeksite na elementite
for (i = 0; i < n; i++)
(*arr) = i;
//I n-1 puti mahame index
for (i = 0; i < n - 1; i++) {
//I izchislqwame koi index trqbbwa da mahnem,
//I kato znaem, che w i-tata iteraciq sa
//I ostanali n-i index-a. Prawim edin %
//I che tuku wij index-a se okaje >= n-i
index = (index + m) % (n - i);
//I premestwame wsichki indeksi s 1 napred
//I (BTW nqma nujda absolutno wsichki, zatowa
//I sum slojil -i. Slojil sum -1, da ne stane
//I taka che (*arr)[j + 1] da brukne w
//I nerezerwirana pamet pri i=0)
for (int j = index; j < n - i - 1; j++)
(*arr)[j] = (*arr)[j + 1];
}
//I sled n-1 mahaniq i premestwaniq bi trqbwalo
//I posledniq element da e na 0wa poziciq
return (*arr)[0];
}
__except {
//I nedostatuchno pamet
return -1;
}
}

Отговор
в отговор на matematic #43

Re: RE: Interview question

ei, da mu se ne znae i tupiq dir, edin tab ne moje da izkara. s interwali bi trqbwalo koda da e po-chetaem:


int Foo(int n, int m){
int i;
//I ukazatel kum masiw sys indeksite
int (*arr)[];
//I pomni index-a koito trqbwa da mahnem
int index = 0;

if (m <= 0 || n <= 0)
//I kalpawi stoinosti za m ili n
return -2;
//I be da si ima edin try..exept blok,
//I ako new operator-a bugne
__try {
arr = new int[n];
//I zapiswame indeksite na elementite
for (i = 0; i < n; i++)
(*arr) = i;
//I n-1 puti mahame index
for (i = 0; i < n - 1; i++) {
//I izchislqwame koi index trqbbwa da mahnem,
//I kato znaem, che w i-tata iteraciq sa
//I ostanali n-i index-a. Prawim edin %
//I che tuku wij index-a se okaje >= n-i
index = (index + m) % (n - i);
//I premestwame wsichki indeksi s 1 napred
//I (BTW nqma nujda absolutno wsichki, zatowa
//I sum slojil -i. Slojil sum -1, da ne stane
//I taka che (*arr)[j + 1] da brukne w
//I nerezerwirana pamet pri i=0)
for (int j = index; j < n - i - 1; j++)
(*arr)[j] = (*arr)[j + 1];
}
//I sled n-1 mahaniq i premestwaniq bi trqbwalo
//I posledniq element da e na 0wa poziciq
return (*arr)[0];
}
__except {
//I nedostatuchno pamet
return -1;
}
}

Отговор
в отговор на lvan #44

Re: RE: Interview question

abe toq dir.bg e opasen, i interwali ne izkarwa....
trqbwa da go zalojat twa w sledwashtite wersii na portala, che kak shte post-wame kod !?...

Отговор
в отговор на lvan #45

Re: RE: Interview question

ei, ako m sochi nulewiq element gornoto nqma da raboti. Eto modifikaciqta (ako nqkoi nameri bug, brawo... da go postne :) ) :

int Foo(int n, int m){
/**/int i;
/**///I ukazatel kum masiw sys indeksite
/**/int (*arr)[];
/**///I pomni index-a koito trqbwa da mahnem
/**/int index = 0;

/**///I kalpawi stoinosti za m ili n
/**/if (m < 0 || n <= 0) return -2;
/**///I ako m se otnasq za 1iq element, wrushtame posledniq
/**/if (m == 0) return n - 1;
/**///I be da si ima edin try..exept blok,
/**///I ako new operator-a bugne
/**/__try {
/*****/arr = new int[n];
/*****///I zapiswame indeksite na elementite
/*****/for (i = 0; i < n; i++) (*arr) = i;
/*****///I n-1 puti mahame index
/*****/for (i = 0; i < n - 1; i++) {
/********///I izchislqwame koi index trqbbwa da mahnem,
/********///I kato znaem, che w i-tata iteraciq sa
/********///I ostanali n-i index-a. Prawim edin %
/********///I che tuku wij index-a se okaje >= n-i
/********/index = (index + m) % (n - i);
/********///I premestwame wsichki indeksi s 1 napred
/********///I (BTW nqma nujda absolutno wsichki, zatowa
/********///I sum slojil -i. Slojil sum -1, da ne stane
/********///I taka che (*arr)[j + 1] da brukne w
/********///I nerezerwirana pamet pri i=0)
/********/for (int j = index; j < n - i - 1; j++)
/***********/(*arr)[j] = (*arr)[j + 1];
/*****/}
/*****///I sled n-1 mahaniq i premestwaniq bi trqbwalo
/*****///I posledniq element da e na 0wa poziciq
/*****/return (*arr)[0];
/**/}
/**/__except {
/*****///I nedostatuchno pamet
/*****/return -1;
/**/}
}

Отговор
в отговор на lvan #46

Re: RE: Interview question


Пич, ако вместо да се мъчиш като грешен дявол да форматираш текста беше кликнал T У К (това е линка малко над редактора за постовете) можеше да видиш как да постваш код, който изглежда ей така:

for (int i=0; i<5; i++)
{
if (i==3)
{
//DO some shit
}
else
{
//DO the other shit
}
}


Powered by telerik fuel. Sometimes by vodka.
Отговор
в отговор на Val® #47

Пък ако човекът

си беше дал и малко зор да се регистрира, щеше да може да си променя мненията, и вместо 6-7 мнения на тема уфф колко е тъп тоя дир, щеше да има едно - две по същество.

Bеer? Moooorrre?
Отговор