top 30 programming coding interview questions answers
În acest tutorial, am furnizat cele mai frecvente întrebări și răspunsuri pentru intervievarea codificării, cu logică de program și exemple de coduri, pentru a practica programarea:
Suntem cu toții conștienți de faptul că răspunsul la cele mai elementare întrebări de codificare sau programare a interviului determină modul în care performăm într-un interviu. Interviul poate fi pentru Java, C ++ sau o cerință Javascript, dar baza rămâne aceeași, adică cât de puternici suntem în fundamentele logicii de programare.
De asemenea, dacă abordarea noastră este promptă și subtilă într-un interviu, probabilitatea selecției este mai mare. Deci, citiți mai departe pentru a sparge întrebările de interviu de codare.
Nu uitați să studiați și să practicați aceste întrebări de programare înainte de a vă confrunta cu un interviu. Acest lucru nu numai că vă va spori convingerea, ci vă va fi de ajutor și pentru a le răspunde rapid. Întrebările vor acoperi în principal subiecte cum ar fi matrici, șiruri, liste conectate și așa mai departe.
Trageți șosetele băieți !!
Întrebări frecvente despre programarea / codificarea de bază a interviului
Q # 1) Cum poți inversa un șir?
Răspuns: Șirul este inversat cu următorul algoritm:
- Iniţia
- Șirul care urmează să fie inversat este declarat.
- Obțineți lungimea șirului.
- Porniți o buclă și apoi schimbați poziția elementelor matrice.
- Păstrați pozițiile schimbate.
- Imprimați șirul inversat.
Q # 2) Ce este un șir de palindrom?
Răspuns: După ce șirul este inversat, așa cum sa discutat în Q # 1, trebuie să punem următoarea condiție:
Fragment de cod:
if(actualtxt.equals(reversetxt)){ return “Palindrome”; else return “Not Palindrome”; }
Astfel, șirul palindrom este cel care la inversare rămâne același, de exemplu, - ‘madam’ este un șir de palindrom.
Î # 3) Cum se obțin caracterele potrivite într-un șir?
Răspuns: Pentru a obține caracterele potrivite într-un șir, sunt urmați pașii de mai jos:
- Se ia structura de date Hash Map care funcționează cu perechea cheie-valoare.
- Buclați șirurile, caracter cu caracter și verificați dacă acel caracter al șirului există sau nu în harta hash.
- Dacă rezultatul este adevărat, contorul pentru caracterul din harta hash este mărit sau altfel atunci puneți un număr ca 1.
- Odată ce bucla se termină, harta Hash este parcursă și tipărește caracterele cu mai mult de 1 numărare.
Fragment de cod:
HashMap mp = new HashMap (); for (int j = 0; j1){ System.out.println(ch+ ' - ' + c); } }
Q # 4) Cum să obțineți caracterele care nu se potrivesc într-un șir?
Răspuns: Pentru a obține caracterele care nu se potrivesc într-un șir, sunt urmați pașii de mai jos:
- Se ia structura de date Hash Map care funcționează cu perechea cheie-valoare.
- Buclați șirul, caracter cu caracter și verificați dacă acel caracter al șirului există sau nu în harta hash.
- Dacă rezultatul este adevărat, contorul pentru caracterul din harta hash este mărit sau altfel atunci puneți un număr ca 1.
- Odată ce bucla se termină, harta Hash este parcursă și se imprimă caracterele cu un număr egal cu 1.
Fragment de cod:
HashMap mp = new HashMap (); for (int j = 0; j Q # 5) Cum se calculează numărul de vocale și consoane dintr-un șir?
Răspuns: Pentru a calcula numărul de vocale și consoane dintr-un șir, sunt urmați pașii de mai jos:
- Obțineți șirul pe care trebuie efectuat numărul.
- Rulați o buclă de la 0 la lungimea șirului.
- Luați câte un singur caracter odată și verificați dacă fac parte din grupul de vocale.
- Dacă rezultatul este adevărat, creșteți numărul de vocale sau creșteți numărul de consoane.
Fragment de cod:
for (int k = 0; k Q # 6) Cum demonstrezi că cele două șiruri sunt anagrame?
Răspuns: Două șiruri sunt denumite anagrame dacă găzduiesc un grup similar de caractere într-o succesiune variată.
Pentru a verifica dacă două șiruri sunt anagrame, sunt urmați pașii de mai jos:
- Inițializați două șiruri în două variabile.
- Verificați dacă lungimea celor două șiruri este similară, dacă nu, șirurile nu sunt o anagramă.
- Dacă rezultatul este adevărat, luați cele două șiruri și păstrați-le într-o matrice de caractere.
- Sortați cele două matrice de caractere, apoi verificați dacă cele două matrice sortate sunt similare.
- Dacă rezultatul este adevărat, cele două șiruri sunt alte anagramă, nu anagramă.
Fragment de cod:
if (str1.length() != str2.length()) { System.out.println(str1 + ' and ' +str2 + ' not anagrams string'); }else{ char() anagram1 = str1.toCharArray(); char() anagram2 = str2.toCharArray(); Arrays.sort(anagram1); Arrays.sort(anagram2); anagrmstat = Arrays.equals(anagram1, anagram2); } if (anagrmstat == true) { System.out.println(str1 + ' and ' +str2 + ' anagrams string'); }else{ System.out.println(str1 + ' and ' +str2 + ' not anagrams string'); } }
Q # 7) Găsiți numărul pentru apariția unui anumit caracter într-un șir.
Răspuns: Pentru a număra apariția unui anumit caracter într-un șir, sunt urmați pașii de mai jos:
cum se deschid fișiere jar cu java windows 10
- Începeți cu un șir și un anumit caracter a cărui apariție va fi numărată.
- Porniți o buclă de la 0 la lungimea șirului.
- Comparați dacă un anumit caracter al șirului este egal cu caracterul căutat.
- Dacă rezultatul este adevărat, atunci creșteți valoarea contorului.
Fragment de cod:
for (int l=0; l Q # 8) Cum se verifică dacă două șiruri sunt o rotație reciprocă?
Răspuns: Pentru a verifica dacă două șiruri sunt o rotație reciprocă, sunt urmați pașii de mai jos:
- Inițializați cele două șiruri în două variabile.
- Verificați dacă lungimea a două șiruri este similară, dacă nu returnează fals.
- Alăturați șirul la sine.
- Verificați dacă șirul care este rotit este prezent în șirul unit.
- Dacă rezultatul este adevărat, al doilea șir este o rotație a primului șir.
Fragment de cod:
String concat = org_string + org_string; if (concat.indexOf (rotat) ! = -1) { return true; }
Q # 9) Cum se calculează numărul de cifre numerice dintr-un șir?
Răspuns: Pentru a calcula numărul de cifre dintr-un șir, sunt urmați pașii de mai jos:
- Obțineți șirul pe care trebuie efectuat numărul
- Utilizați funcția replaceAll, care înlocuiește toate cifrele numerice cu „”.
- Obțineți lungimea șirului fără cifre.
Fragment de cod:
package introduction; public class GG { public static void main(String() args) { // TODO Auto-generated method stub String str = 'TESTu45'; str=str.replaceAll('\d', ''); int l = str.length(); System.out.println('The length of the string without digit is:' + l); } }
În această soluție, se utilizează o expresie regulată.
Q # 10) Cum se calculează primul caracter al unui șir care nu se repetă?
Răspuns: Pentru a calcula primul caracter al unui șir care nu se repetă, sunt urmați pașii de mai jos:
- Se ia o structură de date pentru caracterele repetate și o listă pentru caracterul care nu se repetă.
- După separarea celor repetate și nerepetate, la sfârșitul iterației, primul element al listei este tipărit în consolă.
Fragment de cod:
Set repeated = new HashSet(); List nonRepeated = new ArrayList(); for (int m = 0; m Q # 11) Cum să căutați un număr lipsă într-o matrice care conține numere întregi de la 1 la 100?
Răspuns: Pentru a căuta un număr lipsă într-o matrice care conține numere întregi de la 1 la 100, sunt urmați pașii de mai jos:
- Luați un tablou întreg cu numerele de la 1 la 100.
- Calculați suma numerelor, suma este = l * (l + 1) / 2, unde l este numărul de numere întregi.
- Efectuați scăderea elementului lipsă din adunarea totală a numerelor.
Q # 12) Cum se obțin elementele potrivite într-o matrice întreagă?
Răspuns: Pentru a obține elementele potrivite într-o matrice întreagă, sunt urmați pașii de mai jos:
- Construiește două bucle.
- În prima buclă, colectați elemente unul câte unul și adăugați numărul de instanțe ale elementului selectat.
Fragment de cod:
for (m = 0; m Q # 13) Cum să ștergeți elementele repetate dintr-un tablou întreg?
Răspuns: Pentru a șterge elementele repetate dintr-o matrice întreagă, sunt urmați pașii de mai jos:
cel mai bun convertor gratuit de mov la mp4
- Construiți un hashmap care va alege toate elementele care sunt prezente înainte.
- Parcurgeți matricea și verificați dacă elementul există deja în harta hash
- Dacă rezultatul este adevărat, traversarea matricei este continuată, în caz contrar, elementul este tipărit în consolă.
Fragment de cod:
HashMap m = new HashMap(); for (int j = 0; j Q # 14) Determinați cel mai mare și cel mai mic element dintr-o matrice care nu este sortată.
Răspuns: Pentru a determina cel mai mare și cel mai mic element dintr-o matrice trebuie parcurși pașii de mai jos:
- Traversați matricea și monitorizați elementul maxim găsit până acum, până când suntem la marginea matricei, cel mai mare element este atins.
- Traversați matricea și monitorizați elementul minim găsit până acum, până când suntem la marginea matricei, se atinge cel mai mic element.
Q # 15) Explicați algoritmul sortării cu bule.
Răspuns: Algoritmul de sortare a bulelor include următorii pași:
- Începeți de la primul element, apoi efectuați o comparație cu următorul element din matrice
- Dacă elementul actual este mai mare decât următorul element al matricei, atunci schimbați pozițiile lor.
- Dacă elementul actual este mai mic decât următorul element al matricei, treceți la elementul următor și repetați din nou pasul 1.
Fragment de cod:
for(k = 0; k Q # 16) Implementați algoritmul de sortare a inserției.
Răspuns: Implementarea sortării inserției.
Fragment de cod:
for (m = 1; m 0 && arry(n - 1) > arry(n)) { k = arry(n); arry(n) = arry(n - 1); arry(n - 1) = k; n--; } }
Q # 17) Determinați al doilea cel mai mare element al unui tablou.
Răspuns: Al doilea cel mai mare element al unui tablou poate fi calculat prin următorii pași:
- Indicați cel mai mare element ca primul element al tabloului și al doilea cel mai mare element ca al doilea element al tabloului.
- Iterează prin bucla pentru a traversa matricea.
- DACĂ arry (i) este mai mare decât cel mai mare element THEN
Al doilea element? cel mai mare element
Cel mai mare element? Arry (i)
DACĂ al doilea element este mai mic decât arry (i) THEN
Al doilea element? Arry (i)
Fragment de cod:
if(arry(0) > arry(1)) { l = arry(0); s = arry(1); } else { l = arry(1); s = arry(0); } for(i = 2; i Q # 18) Explicați inversarea unui tablou.
Răspuns: Inversarea matricii se realizează în următoarele moduri:
- Luați o matrice cu elemente.
- Acum schimbați poziția primului element cu elementul final și în mod similar al doilea element cu penultimul element.
- Aceasta va continua până când întreaga matrice este inversată.
Fragment de cod:
for (t = 0; t Q # 19) Cum se elimină caracterele speciale dintr-un șir care este cu litere mici?
Răspuns: Caracterele speciale dintr-un șir pot fi eliminate prin utilizarea funcției replaceAll din Java.
Fragment de cod:
string str = “Testing@” str.replaceAll(“(^a-z0-9)”,””)
În această soluție, se utilizează o expresie regulată.
Q # 20) Cum se efectuează schimbul a două șiruri prin utilizarea unei a treia variabile?
Răspuns: Două șiruri sunt schimbate fără ajutorul celei de-a treia variabile prin următorii pași:
(i) Luați două șiruri i, j și adăugați-le, apoi stocați-le în primul șir.
(ii) Folosind metoda substring extrageți șirul:
j = substring(0,i.length()-j.length())
(iii) Stocați șirul j în șirul i
i= subsrtirng(j.length)
Fragment de cod:
string i = “abc”, j =”def”; i = i+j; j = i. substring(0,i.length()-j.length()); i = i.substring(j.length()) System.out.println(i +””+j);
Q # 21) Cum să treci la mijlocul unei liste legate?
Răspuns: Pentru a parcurge mijlocul unei liste legate, se urmează pașii de mai jos:
- Declarați doi și doi indicatori care sunt inițializați la capul listei conectate.
- Măriți prima listă legată cu două noduri și a doua cu un nod în fiecare buclă.
- În timp ce primul nod ajunge la sfârșitul listei, al doilea nod va indica spre mijloc.
Fragment de cod:
first = second = head; while(first !=null) { first = first.next; if(first != null && first.next != null) { second = second.next; first = first.next; } } return second; }
Q # 22) Implementați procesul de inversare a unei liste conectate.
Răspuns: O listă legată poate fi inversată prin pașii de mai jos:
- Declarați trei noduri anterioare, prezente și următoare.
- În timp ce se află în nodul actual, precedentul va fi nul.
- Să prezinte prezentul următor pentru a inversa lista.
- În fiecare buclă, prezentul și precedentul sunt incrementate cu 1.
Fragment de cod:
Node preceding=null; Node following while(present!=null) { following=present.next; present.next=preceding; preceding=present; present=following; } return preceding; }
Q # 23) Care este procesul de ștergere a elementelor potrivite dintr-o listă legată care nu este sortată.
Răspuns: Pentru a șterge elementele potrivite dintr-o listă legată care nu este sortată, sunt urmați pașii de mai jos:
- Călătoriți de la cap până la coada listei conectate.
- Pentru fiecare valoare din lista conectată, verificați dacă este deja prezentă în tabelul de hash.
- Dacă rezultatul este adevărat, elementul nu este adăugat la tabelul hash.
Fragment de cod:
HashSet h = new HashSet(); node present = head; node preceding = null; while (present != null) { int presentval = present.value; if (h.contains(presentval)) { preceding.next = present.next; } else { h.add(presentval); preceding = present; } present = present.next; } }
Q # 24) Cum se obține lungimea unei liste conectate?
Răspuns: Pentru a obține lungimea unei liste conectate, sunt urmați pașii de mai jos:
- Porniți un contor cu valoarea 0 și prezentați nodul ca cap.
- Până când nodul actual nu este nul, efectuați următoarele:
- prezent = prezent -> următor
- contor = contor + 1
- Valoarea contorului este returnată.
Fragment de cod:
{ Node present = head; int c = 0; while (present != null) { c = c + 1; present = present.next; } return c; }
Q # 25) Cum să căutați o anumită valoare într-o listă legată?
Răspuns: Pentru a căuta o anumită valoare într-o listă legată, sunt urmați pașii de mai jos:
- Declarați nodul prezent ca cap.
- Până când nodul actual nu este nul, efectuați următoarele:
- prezent -> valoarea este egală cu valoarea căutată pentru returnarea adevărată.
- prezent = prezent -> următor.
- Dacă nu este găsit, falsul este returnat.
Fragment de cod:
Node present = head; while (present != null) { if (present.value == value) return true; present = present.next; } return false; }
Q # 26) Cum se verifică dacă un număr este sau nu prim?
Răspuns: Pentru a verifica dacă un număr este sau nu prim, sunt urmați pașii de mai jos:
- Porniți o buclă de la valoarea 2 (k) până la (număr / 2)
- Dacă numărul este perfect divizibil cu k, atunci numărul este non-prim.
- Dacă numărul nu este perfect divizibil, cu excepția lui 1 și de la sine, atunci numărul este prim.
Fragment de cod:
for(k = 2; k <= number / 2; k++) { if(number % k == 0) { stat = false; break; } } if (stat) System.out.println('Prime'; else System.out.println('Not prime');
Q # 27) Cum se obține al treilea nod al unei liste conectate?
Răspuns: Pentru a ajunge la al treilea nod al listei conectate, se parcurg pașii de mai jos:
- Porniți un contor cu valoarea 0.
- Repetați lista cu linkuri și efectuați acești pași:
- Dacă valoarea contorului este 3, atunci nodul actual este returnat.
- Contorul este mărit cu 1.
- Modificați prezentul astfel încât să implice următorul prezent.
Fragment de cod:
Node present = head; int c = 0; while (c != null) { if (c == 3) return present.val; c = c+1; present = present.next; }
Q # 28) Calculați primele cinci numere Fibonacci.
Răspuns: 0 și 1 sunt primele două numere Fibonacci și toate numerele după 0 și 1 sunt adunarea celor două numere anterioare.
cel mai bun detergent pentru Windows 10
Fragment de cod:
int num1=0, num2=1,t; for ( int k = 0; k<5,k++) { System.out.println(num1); t = num1 + num2; num1 = num2; num2 = t; }
Q # 29) Cum se inversează un număr?
Răspuns: Inversarea unui număr se realizează în următorii pași:
- Scoateți cifra din dreapta a numărului.
- Sumați cifra cu noul număr inversat.
- Efectuați multiplicarea cu 10.
- Împarte numărul la 10.
Q # 30) Determinați factorii unui număr.
Răspuns: Factorii unui număr sunt exprimați prin următorul fragment de cod:
int no = 75; for(int j = 1; j <= no; j++) { if (no % j == 0) { System.out.print(j); }
Concluzie
Sperăm că multe dintre răspunsurile la întrebările dvs. cu privire la întrebările de bază ale interviului de codificare au fost clarificate.
Majoritatea implementărilor de codare pe care le-am discutat sunt în Java, cu toate acestea, chiar dacă nu știți limbajul, pașii sau detaliile algoritmului prezentate aici pentru majoritatea întrebărilor vă vor ajuta să vă pregătiți pentru un interviu.
Lucrați din greu la elementele de bază ale programării, logicii, structurilor de date, rămâneți calm și exersați aceste întrebări de interviuri de programare.
Toate cele bune pentru interviul dvs. viitoare !!
Lectură recomandată
- Întrebări și răspunsuri la interviu
- Întrebări și răspunsuri la interviuri de testare ETL
- Câteva întrebări și răspunsuri dificile de testare manuală
- 30 de întrebări și răspunsuri de top pentru interviuri HTML (LISTA 2021)
- Top 30+ Întrebări și răspunsuri populare la interviu cu Castravete
- Top 30 întrebări și răspunsuri la interviu SAS
- Top 30 de întrebări și răspunsuri la interviu pentru SGBD
- Top 30 Întrebări și răspunsuri ale interviului pentru testarea securității