top 30 programming coding interview questions answers
En aquest tutorial, hem proporcionat les preguntes i respostes més freqüents de les entrevistes de codificació amb exemples de lògica i codi del programa perquè pugueu practicar la programació:
Tots som conscients que respondre a les preguntes de codificació o programació més bàsiques de l'entrevista determina el nostre rendiment en una entrevista. L'entrevista pot ser per a Java, C ++ o un requisit de Javascript, però la base continua sent la mateixa, és a dir, quant de forts som en els fonaments de la lògica de programació.
També si el nostre enfocament és ràpid i subtil en una entrevista, la probabilitat de selecció és més gran. Per tant, seguiu llegint per trencar les preguntes de l'entrevista de codificació.
Recordeu d’estudiar i practicar aquestes preguntes d’entrevistes de programació abans d’afrontar una entrevista. Això no només augmentarà la vostra convicció, sinó que també serà útil per respondre-hi ràpidament. Les preguntes tractaran principalment temes com ara matrius, cadenes, llista enllaçada, etc.
Traieu els mitjons nois !!
Preguntes bàsiques sobre l'entrevista de programació / codificació bàsica
Q # 1) Com es pot invertir una cadena?
Resposta: la cadena s'inverteix amb l'algorisme següent:
- Iniciar
- Es declara la cadena que s'ha d'invertir.
- Obteniu la longitud de la corda.
- Inicieu un bucle i, a continuació, canvieu la posició dels elements de la matriu.
- Mantingueu les posicions intercanviades.
- Imprimiu la cadena invertida.
P # 2) Què és una cadena de palíndrom?
Resposta: Després d'invertir la cadena, tal com es parla a la Q # 1, hem de posar la condició següent:
Fragment de codi:
if(actualtxt.equals(reversetxt)){ return “Palindrome”; else return “Not Palindrome”; }
Per tant, la cadena de palíndrom és la que en la inversió continua sent la mateixa, per exemple, - ‘senyora’ és una corda de palíndrom.
P # 3) Com obtenir els caràcters coincidents en una cadena?
Resposta: per obtenir els caràcters coincidents en una cadena, se segueixen els passos següents:
- Es pren l'estructura de dades del mapa hash que funciona amb el parell clau-valor.
- Feu un bucle de les cadenes, caràcter per caràcter, i verifiqueu si aquest caràcter de la cadena existeix al mapa de hash o no.
- Si el resultat és cert, s'incrementa el comptador del caràcter del mapa de hash o bé posa un recompte com a 1.
- Un cop finalitzat el bucle, es recorre el mapa Hash i s'imprimeixen els caràcters amb més d'un recompte.
Fragment de codi:
HashMap mp = new HashMap (); for (int j = 0; j1){ System.out.println(ch+ ' - ' + c); } }
Q # 4) Com es poden obtenir els caràcters que no coincideixen en una cadena?
Resposta: Per obtenir els caràcters que no coincideixen en una cadena, se segueixen els passos següents:
- Es pren l'estructura de dades del mapa hash que funciona amb el parell clau-valor.
- Feu un bucle de la cadena, caràcter per caràcter, i verifiqueu si aquest caràcter de la cadena existeix o no al mapa de hash.
- Si el resultat és cert, s'incrementa el comptador del caràcter del mapa de hash o bé posa un recompte com a 1.
- Un cop finalitzat el bucle, es recorre el mapa Hash i s’imprimeixen els caràcters amb un recompte igual a 1.
Fragment de codi:
HashMap mp = new HashMap (); for (int j = 0; j Q # 5) Com es calcula el nombre de vocals i consonants en una cadena?
Resposta: per calcular el nombre de vocals i consonants en una cadena, se segueixen els passos següents:
- Obteniu la cadena amb què s’ha de realitzar el recompte.
- Executeu un bucle de 0 a la longitud de la cadena.
- Agafeu un sol caràcter alhora i verifiqueu si formen part del grup de vocals.
- Si el resultat és cert, augmenteu el recompte de vocals o bé incrementeu el recompte de consonants.
Fragment de codi:
for (int k = 0; k P # 6) Com demostreu que les dues cadenes són anagrames?
Resposta: Dues cadenes s’anomenen anagrames si contenen un grup similar de caràcters en una seqüència variada.
Per comprovar si dues cadenes són anagrames, se segueixen els passos següents:
- Inicialitzeu dues cadenes en dues variables.
- Comproveu si la longitud de les dues cordes és similar, si no, les cordes no són un anagrama.
- Si el resultat és cert, agafeu les dues cadenes i deseu-les en una matriu de caràcters.
- Ordeneu les dues matrius de caràcters i, a continuació, comproveu si les dues matrius ordenades són semblants.
- Si el resultat és cert, les dues cadenes són un anagrama més, no un anagrama.
Fragment de codi:
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) Cerqueu el recompte de l'aparició d'un caràcter concret en una cadena.
Resposta: per comptar l'aparició d'un caràcter concret en una cadena, se segueixen els passos següents:
- Comenceu amb una cadena i un caràcter concret que es comptarà l'ocurrència.
- Inicieu un bucle de 0 a la longitud de la cadena.
- Compareu si un caràcter concret de la cadena és igual al caràcter que es busca.
- Si el resultat és cert, incrementeu el valor del comptador.
Fragment de codi:
for (int l=0; l Q # 8) Com verificar si dues cadenes són una rotació mútua?
Resposta: per verificar si dues cadenes són una rotació mútua, se segueixen els passos següents:
- Inicialitzeu les dues cadenes en dues variables.
- Comproveu si la longitud de dues cadenes és similar, si no és fals.
- Uniu la cadena a si mateixa.
- Verifiqueu si la cadena que es gira és present a la cadena unida.
- Si el resultat és cert, la segona cadena és una rotació de la primera cadena.
Fragment de codi:
String concat = org_string + org_string; if (concat.indexOf (rotat) ! = -1) { return true; }
P # 9) Com es calcula el nombre de dígits numèrics en una cadena?
Resposta: per calcular el nombre de dígits d'una cadena, se segueixen els passos següents:
- Obteniu la cadena amb què s’ha de realitzar el recompte
- Utilitzeu la funció replaceAll, que substitueix tots els dígits numèrics per ''.
- Obteniu la longitud de la cadena sense dígits.
Fragment de codi:
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); } }
En aquesta solució, s’utilitza una expressió regular.
Q # 10) Com es calcula el primer caràcter d'una cadena que no es repeteix?
Resposta: per calcular el primer caràcter d'una cadena que no es repeteix, se segueixen els passos següents:
- Es pren un conjunt d'estructures de dades per als caràcters repetits i una llista per al caràcter no repetit.
- Després de segregar el repetit i el no repetit, al final de la iteració, s’imprimeix el primer element de la llista a la consola.
Fragment de codi:
Set repeated = new HashSet(); List nonRepeated = new ArrayList(); for (int m = 0; m Q # 11) Com cercar un número que falta en una matriu que conté nombres enters de l'1 al 100?
Resposta: per cercar un número que falti en una matriu que contingui enters de l'1 al 100, se segueixen els passos següents:
- Agafeu una matriu sencera amb els números de l'1 al 100.
- Calculeu la suma dels nombres, la suma serà = l * (l + 1) / 2, on l és el nombre de nombres enters.
- Realitzeu la resta de l'element que falta de la suma total de nombres.
P # 12) Com obtenir els elements coincidents en una matriu sencera?
Resposta: Per obtenir els elements coincidents en una matriu sencera, se segueixen els passos següents:
- Construeix dos bucles.
- Al primer bucle, recopileu elements d’un en un i sumeu el nombre d’instàncies de l’element seleccionat.
Fragment de codi:
for (m = 0; m Q # 13) Com esborrar els elements repetits en una matriu sencera?
Resposta: per suprimir els elements repetits en una matriu sencera, se segueixen els passos següents:
- Creeu un hashmap que recollirà tots els elements que hi ha abans.
- Feu un bucle a través de la matriu i verifiqueu si l’element ja existeix al mapa de hash
- Si el resultat és cert, es continua la travessia de matriu, en cas contrari, l'element s'imprimeix a la consola.
Fragment de codi:
HashMap m = new HashMap(); for (int j = 0; j Q # 14) Determineu l'element més gran i el més petit d'una matriu que no està ordenada.
Resposta: Per determinar l'element més gran i el més petit d'una matriu, cal seguir els passos següents:
- Travesseu la matriu i superviseu l’element màxim trobat fins ara, fins que arribem a la vora de la matriu, s’aconsegueix l’element més gran.
- Recorre la matriu i supervisa l’element mínim trobat fins ara, fins que arribem a la vora de la matriu, s’aconsegueix l’element més petit.
P # 15) Expliqueu l'algorisme de classificació de bombolles.
Resposta: L'algorisme d'ordenació de bombolles inclou els passos següents:
- Comenceu des del primer element i, a continuació, feu una comparació amb l'element següent de la matriu
- Si l'element actual és més gran que l'element següent de la matriu, canvieu les seves posicions.
- Si l'element actual és inferior a l'element següent de la matriu, canvieu a l'element següent i torneu a repetir el pas 1.
Fragment de codi:
for(k = 0; k Q # 16) Implementar l'algorisme d'ordenació d'inserció.
Resposta: Implementació del tipus d'inserció.
Fragment de codi:
for (m = 1; m 0 && arry(n - 1) > arry(n)) { k = arry(n); arry(n) = arry(n - 1); arry(n - 1) = k; n--; } }
P # 17) Determineu el segon element més gran d'una matriu.
Resposta: El segon element més gran d'una matriu es pot calcular mitjançant els passos següents:
- Indiqueu l'element més gran com a primer element de la matriu i el segon element més gran com a segon element de la matriu.
- Repeteix el bucle per recórrer la matriu.
- IF arry (i) és major que l'element més gran ALeshores
Segon element? element més gran
L'element més gran? Arry (i)
SI el segon element és inferior a arry (i) LLAVORS
Segon element? Arry (i)
Fragment de codi:
if(arry(0) > arry(1)) { l = arry(0); s = arry(1); } else { l = arry(1); s = arry(0); } for(i = 2; i P # 18) Expliqueu la inversió d'una matriu.
Resposta: la inversió de matriu es realitza de les maneres següents:
- Agafeu una matriu amb elements.
- Ara intercanvieu la posició del primer element amb l'element final i, de manera similar, el segon element amb el penúltim element.
- Això continuarà fins que s'inverti tota la matriu.
Fragment de codi:
for (t = 0; t P # 19) Com treure caràcters especials en una cadena en minúscula?
Resposta: Els caràcters especials d'una cadena es poden eliminar mitjançant la funció replaceAll a Java.
Fragment de codi:
string str = “Testing@” str.replaceAll(“(^a-z0-9)”,””)
En aquesta solució, s’utilitza una expressió regular.
P # 20) Com es realitza l'intercanvi de dues cadenes si no s'utilitza una tercera variable?
Resposta: Es canvien dues cadenes sense l'ajut de la tercera variable mitjançant els passos següents:
(i) Agafeu dues cadenes i, j i afegiu-les i deseu-les a la primera cadena.
(ii) Mitjançant el mètode de subcadena extreu la cadena:
j = substring(0,i.length()-j.length())
(Iii) Emmagatzemeu la cadena j a la cadena i
i= subsrtirng(j.length)
Fragment de codi:
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);
P # 21) Com arribar al centre d'una llista enllaçada?
Resposta: Per passar al centre d'una llista enllaçada, es segueixen els passos següents:
- Declareu dos punters primer i segon que s’inicialitzen al capçal de llista enllaçat.
- Incrementeu la primera llista enllaçada per dos nodes i la segona per un node a cada bucle.
- Mentre el primer node arriba al final de la llista, el segon node apuntarà cap al centre.
Fragment de codi:
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) Implementar el procés per invertir una llista enllaçada.
Resposta: es pot revertir una llista enllaçada mitjançant els passos següents:
- Declareu tres nodes anteriors, presents i següents.
- Mentre que al node actual, el precedent serà nul.
- Deixeu que el present.next sigui precedent per invertir la llista.
- A cada bucle, el present i el precedent s’incrementen en 1.
Fragment de codi:
Node preceding=null; Node following while(present!=null) { following=present.next; present.next=preceding; preceding=present; present=following; } return preceding; }
P # 23) Quin és el procés de supressió d’elements coincidents d’una llista enllaçada que no s’ordena.
Resposta: per suprimir els elements coincidents d'una llista enllaçada que no està ordenada, se segueixen els passos següents:
- Viatgeu des del cap fins a la cua de la llista enllaçada.
- Per a cada valor de la llista enllaçada, verifiqueu si ja és present a la taula de hash.
- Si el resultat és cert, l'element no s'afegeix a la taula de hash.
Fragment de codi:
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; } }
P # 24) Com obtenir la longitud d'una llista enllaçada?
Resposta: Per obtenir la longitud d'una llista enllaçada, se segueixen els passos següents:
- Inicieu un comptador amb un valor de 0 i presenteu el node com a cap.
- Fins que el node actual no sigui nul, realitzeu aquestes accions:
- present = present -> següent
- comptador = comptador + 1
- Es torna el valor del comptador.
Fragment de codi:
{ Node present = head; int c = 0; while (present != null) { c = c + 1; present = present.next; } return c; }
P # 25) Com cercar un valor específic en una llista enllaçada?
Resposta: per cercar un valor específic en una llista enllaçada, se segueixen els passos següents:
- Declareu el node actual com a cap.
- Fins que el node actual no sigui nul, realitzeu aquestes accions:
- present -> valor és igual al valor que es busca retorn real.
- present = present -> següent.
- Si no es troba, es torna fals.
Fragment de codi:
Node present = head; while (present != null) { if (present.value == value) return true; present = present.next; } return false; }
P # 26) Com es pot verificar si un nombre és primer o no?
Resposta: Per verificar si un nombre és primer o no, se segueixen els passos següents:
- Inicieu un bucle des del valor 2 (k) fins al (número / 2)
- Si el nombre és perfectament divisible per k, llavors el nombre no és primer.
- Si el nombre no és perfectament divisible excepte per 1 i per si mateix, el nombre és primer.
Fragment de codi:
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');
P # 27) Com obtenir el tercer node d'una llista enllaçada?
Resposta: Per arribar al tercer node de la llista enllaçada, es segueixen els passos següents:
- Inicieu un comptador amb un valor 0.
- Repeteix la llista enllaçada i segueix aquests passos:
- Si el valor del comptador és 3, es retornarà el node actual.
- El comptador s’incrementa en 1.
- Modifiqueu el present de manera que impliqui el següent del present.
Fragment de codi:
Node present = head; int c = 0; while (c != null) { if (c == 3) return present.val; c = c+1; present = present.next; }
Q # 28) Calculeu els primers cinc números de Fibonacci.
Resposta: El 0 i l’1 són els dos primers números de Fibonacci i tots els números posteriors al 0 i l’1 són l’addició dels dos números anteriors.
Fragment de codi:
int num1=0, num2=1,t; for ( int k = 0; k<5,k++) { System.out.println(num1); t = num1 + num2; num1 = num2; num2 = t; }
P # 29) Com invertir un número?
char a int c ++
Resposta: La reversió d’un número s’aconsegueix en els passos següents:
- Traieu el dígit situat a la dreta del número.
- Sumeu el dígit amb el nou número invertit.
- Realitzeu la multiplicació per 10.
- Dividiu el nombre per 10.
P # 30) Determineu els factors d’un nombre.
Resposta: Els factors d’un número s’expressen amb el fragment de codi següent:
int no = 75; for(int j = 1; j <= no; j++) { if (no % j == 0) { System.out.print(j); }
Conclusió
Esperem que s’aclareixin moltes de les respostes a les vostres preguntes sobre les preguntes bàsiques de l’entrevista de codificació.
La major part de la implementació de codificació que hem comentat es troba en Java, però, fins i tot si no coneixeu el llenguatge, els passos o els detalls de l’algoritme que es donen aquí per a la majoria de les preguntes us ajudaran a preparar-vos per a una entrevista.
Treballeu molt en els conceptes bàsics de programació, lògica, estructures de dades, mantingueu la calma i practiqueu aquestes preguntes d’entrevistes de programació.
Tot el millor per a la vostra propera entrevista !!
Lectura recomanada
- Preguntes i respostes de l’entrevista
- Preguntes i respostes de l'entrevista de proves ETL
- Algunes preguntes i respostes de proves manuals complicades
- 30 millors preguntes i respostes d'entrevistes HTML (LLISTA 2021)
- Les 30 preguntes i respostes més populars de l'entrevista de cogombre
- Top 30 de les preguntes i respostes de l’entrevista SAS
- Top 30 de preguntes i respostes de l'entrevista SGBD
- Top 30 de preguntes i respostes de les entrevistes de proves de seguretat