Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Ielele

Fiscal / viza pe contract vanzare...

La multi ani @nicu131!

procura?
 Xiaomi aduce pe piața din Ro...

Ariana 22 ani din Ploiesti are ne...

Noul BMW seria 3:Sedan și To...

Tractor prin programul rabla
 Care cada de baie e mai buna?

Sfat upgrade ram și ssd

Sonoma 14.3 iMac i5 Late 2013

Reclama peste imagine Samsung 32M...
 Radu Stefan Banica ft. Juno - Sam...

Întrebare lichid de frana pe saboti

Grupul de firme Paysera Bulgaria ...

Upgrade Ryzen 9 5900X -> Ryze...
 

Intrebare interviu

- - - - -
  • Please log in to reply
41 replies to this topic

#1
George2503

George2503

    New Member

  • Grup: Members
  • Posts: 13
  • Înscris: 08.05.2009
Salutari. Zilele trecute , am primit un test pt un job ce continea urmatoare problema de algoritmica. Avand un string trebuia sa il transform in integer , similar functiei atoi din c, insa fara a folosi vreo functie predefinita. Aveti vreo sugestie de rezolvare. Multumesc.


Edit: Trebuia sa scriu o implementare la aceasta problema.

Edited by George2503, 01 November 2011 - 21:04.


#2
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,273
  • Înscris: 24.02.2007
Faci cu creionul pe hartie, ca in clasele primare.

#3
stuiberv

stuiberv

    Active Member

  • Grup: Members
  • Posts: 1,808
  • Înscris: 10.08.2006
Scrie un string pe hartie (unul care sa fie reprezentarea unui integer).
Apoi incearca sa iti dai seama cum ai putea sa il transformi in integer.

Pentru string ai anumite "operatii" disponibile, pentru integer alte "operatii".

Daca vei putea sa o faci pe hartie, implementarea ar trebui sa fie destul de simpla.
Daca nu o poti face pe hartie, degeaba iti da cineva solutia.

Apropo, gasesti solutia la o cautare.

#4
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,295
  • Înscris: 21.04.2004
tu cum ai facut? :w00t:

#5
Shinji

Shinji

    Member

  • Grup: Members
  • Posts: 386
  • Înscris: 04.04.2005
Nu ai zis clar in ce limbaj de programare ti s-a cerut asta. Daca chiar e o intrebare de interviu, atunci mi se pare una destul de ciudata. Presupunand ca se cere in C, imi pot imagina cateva solutii, dar acestea nu prea ar arata cat de bun programator esti, ci ce "chichite" ale limbajului cunosti.

#6
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,273
  • Înscris: 24.02.2007
Chichite ale limbajului?  Nu cred ca sti ce inseamna sa te intrebe cineva chichite ale unui limbaj.
Intreabarea asta e una de bun simt, chiar simpla.

#7
m3th0dman

m3th0dman

    Senior Member

  • Grup: Senior Members
  • Posts: 9,269
  • Înscris: 03.01.2007
Presupunând că-n C, ceva de genul:

for(int i = 0; stringNumber[i] != '\0'; i++) {
	 integerNumber += (a[i] - '0') * pow(10, strlen(stringNumber) - i); 
}
N-am verificat; posibil să trebuiască un + 1 sau - 1 pe undeva.
Și de asemenea tre' să verifici la început dacă-ți încape și să returnezi altceva în caz negativ.

L.E.
Funcțiile pow și strlen ți le implementezi la fel de simplu.

Edited by m3th0dman, 01 November 2011 - 21:39.


#8
yonut_a

yonut_a

    Trala la la la

  • Grup: Senior Members
  • Posts: 3,948
  • Înscris: 03.08.2008
Nici nu aveai nevoie de pow sau strlen
 for(int i = 0; stringNumber[i] != '\0'; i++) {
	   integerNumber = (integerNumber + (stringNumber[i] - '0'))*10;
	 
   }
   integerNumber = integerNumber / 10;


#9
Shinji

Shinji

    Member

  • Grup: Members
  • Posts: 386
  • Înscris: 04.04.2005
Sau si mai simplu:

int intNumber= 0;
for (int i = 0; i < strlen(strNumber); ++i)
{
  intNumber = intNumber * 10 + (intNumber[i] - '0');
}

Continui sa cred ca nu e o intrebare buna de interviu, pentru ca se concentreaza pe detalii ale limbajului.

Edited by Shinji, 01 November 2011 - 21:54.


#10
yonut_a

yonut_a

    Trala la la la

  • Grup: Senior Members
  • Posts: 3,948
  • Înscris: 03.08.2008
Secventa de cod scrisa mai sus nu are nicio legatura cu limbajul.Daca stiai cum, chiar nu conta in ce scriai ca era fix acelasi lucru si in C si in C++ si in Java etc...

#11
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,295
  • Înscris: 21.04.2004
n-are absolut nici o treaba cu kikitzele limbajului, pentru ca nu e nici o kikitza :w00t:

dar daca e pe C evident ca poate sa-ti arate cit a lucrat respectivul in C si despre m3th0dman si-ar da seama ca mai deloc, altfel ar fi facut cu pointeri jmekeri

#12
Shinji

Shinji

    Member

  • Grup: Members
  • Posts: 386
  • Înscris: 04.04.2005
Unui incepator nu i-as cere sa se gandeasca la partea cu  - '0', care poate fi dificil de imaginat daca n-ai vazut-o anterior. Unui senior nu i-as pune o intrebare de tipul asta. Deci nu mi-e clar pentru cine ar fi o intrebare buna de interviu.

#13
soarce

soarce

    Active Member

  • Grup: Members
  • Posts: 1,467
  • Înscris: 02.10.2008

View PostShinji, on 1st November 2011, 21:01, said:

Deci nu mi-e clar pentru cine ar fi o intrebare buna de interviu.
E intrebare pentru femeie de servici la Google :D

#14
Shinji

Shinji

    Member

  • Grup: Members
  • Posts: 386
  • Înscris: 04.04.2005
Eu spun doar ca la o experienta de peste 5 ani in C++, intrebarea asta m-a pus pe ganduri. Chiar am simtit nevoia sa scriu solutia si sa o testez. Din intamplare e chiar solutia pe care am postat-o si care cred ca e cea mai simpla dintre toate care au fost propuse. Dar nu a fost chiar floare la ureche asa cum vreti sa sugerati. Sunt convins ca 90% din cei care tocmai au terminat o facultate de calculatoare, nu pot s-o rezolve.

#15
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,295
  • Înscris: 21.04.2004
solutia ta e incompleta si departe de a fi optima, nu verifica semnul, nu testeaza caractere aiurea si strlen incalca cerintele "insa fara a folosi vreo functie predefinita" :)

#16
stuiberv

stuiberv

    Active Member

  • Grup: Members
  • Posts: 1,808
  • Înscris: 10.08.2006

View PostMosotti, on 1st November 2011, 21:21, said:

tu cum ai facut? :w00t:

Eu? Cand am intalnit prima data asta (pe vremea cand invatam programare), am scris pe hartie cum impart intai stringul si ce fac cu bucatile ca sa compun numarul.
Dupa aia am scris codul (din fericire nu pe hartie :) ).
Am verificat cu diverse valori si am mai corectat pe ici pe colo.

Oricum, la un interviu presupun ca intai vor sa vada daca gasesti algoritmul si apoi cum scrii codul.
Cred ca ar trebui sa poti scrie codul pentru algoritmul asta chiar si pe hartie.
Nu spun ca e usor, sunt sigur ca as avea greseli.

EDIT:
Vad ca au mai raspuns deja unii:

De exemplu am omis partea cu numerele negative.
La partea cu verificarea caracterelor m-am gandit.
M-am mai gandit cum fac pentru ultimul caracter (conditia de stop).

Nu m-am gandit ca nu am voie sa folosesc metoda length() de la String.

Tot ce am omis mai sus a fost la nivel de gandire, maine dimineata am sa scriu codul sa vad ce alte probleme mai sunt :).

Edited by stuiberv, 01 November 2011 - 22:22.


#17
msmihai

msmihai

    Senior Member

  • Grup: Senior Members
  • Posts: 5,271
  • Înscris: 02.09.2006
Evident, asta nu e intrebare de interviu la firma serioasa..

#18
Shinji

Shinji

    Member

  • Grup: Members
  • Posts: 386
  • Înscris: 04.04.2005
Ai dreptate, Mosotti, n-am observat cerinta de a nu folosi vreo functie predefinita. :(

Daca ajungem si la semn, verificare de caractere aiurea, eventual si whitespaces, atunci devine si mai complicat...

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate