top 30 programming coding interview questions answers
W tym samouczku przedstawiliśmy najczęściej zadawane pytania i odpowiedzi podczas rozmów kwalifikacyjnych dotyczących kodowania wraz z logiką programu i przykładami kodu, które pomogą Ci ćwiczyć programowanie:
Wszyscy zdajemy sobie sprawę, że odpowiedź na najbardziej podstawowe pytania dotyczące kodowania lub programowania decyduje o tym, jak wypadniemy podczas rozmowy kwalifikacyjnej. Wywiad może dotyczyć Java, C ++ lub Javascript, ale podstawa pozostaje ta sama, czyli jak silni jesteśmy w podstawach logiki programowania.
Również jeśli nasze podejście jest szybkie i subtelne w wywiadzie, prawdopodobieństwo wyboru jest większe. Więc czytaj dalej, aby rozwiązać pytania dotyczące kodowania podczas rozmowy kwalifikacyjnej.
Pamiętaj, aby przestudiować i przećwiczyć te pytania dotyczące programowania przed rozmową kwalifikacyjną. To nie tylko zwiększy twoje przekonanie, ale także pomoże szybko odpowiedzieć na nie. Pytania będą dotyczyły głównie takich tematów, jak tablice, ciągi znaków, połączona lista i tak dalej.
Podciągnijcie skarpetki chłopaki !!
Często zadawane pytania do rozmów kwalifikacyjnych dotyczących podstawowego programowania / kodowania
Pytanie nr 1) Jak można odwrócić sznurek?
Odpowiedź: Ciąg jest odwracany za pomocą następującego algorytmu:
- Zainicjować
- Deklarowany jest ciąg, który ma zostać odwrócony.
- Uzyskaj długość sznurka.
- Rozpocznij pętlę, a następnie zamień pozycje elementów tablicy.
- Zachowaj wymienione pozycje.
- Wydrukuj odwrócony ciąg.
P # 2) Co to jest ciąg palindromowy?
Odpowiedź: Po odwróceniu łańcucha, jak omówiono w Q # 1, musimy postawić następujący warunek:
Fragment kodu:
if(actualtxt.equals(reversetxt)){ return “Palindrome”; else return “Not Palindrome”; }
Tak więc ciąg palindromowy jest tym, który przy odwracaniu pozostaje taki sam, na przykład, - „pani” to ciąg palindromowy.
Q # 3) Jak uzyskać pasujące znaki w ciągu?
Odpowiedź: Aby uzyskać pasujące znaki w ciągu, wykonaj następujące kroki:
- Przyjmowana jest struktura danych Hash Map, która działa z parą klucz-wartość.
- Zapętl ciągi, znak po znaku, i sprawdź, czy ten znak ciągu istnieje w mapie skrótów, czy nie.
- Jeśli wynik jest prawdziwy, licznik znaku na mapie skrótów jest zwiększany lub wtedy liczba wynosi 1.
- Po zakończeniu pętli przechodzi się przez mapę Hash i drukuje znaki z więcej niż 1 liczbą.
Fragment kodu:
HashMap mp = new HashMap (); for (int j = 0; j1){ System.out.println(ch+ ' - ' + c); } }
Pytanie 4) Jak uzyskać niepasujące znaki w ciągu?
Odpowiedź: Aby uzyskać niedopasowane znaki w ciągu, wykonaj następujące kroki:
- Przyjmowana jest struktura danych Hash Map, która działa z parą klucz-wartość.
- Zapętl ciąg znak po znaku i sprawdź, czy ten znak ciągu istnieje w mapie skrótów, czy nie.
- Jeśli wynik jest prawdziwy, licznik znaku na mapie skrótów jest zwiększany lub wtedy liczba wynosi 1.
- Po zakończeniu pętli przechodzi się przez mapę Hash i drukuje znaki z liczbą równą 1.
Fragment kodu:
HashMap mp = new HashMap (); for (int j = 0; j P # 5) Jak obliczyć liczbę samogłosek i spółgłosek w ciągu?
Odpowiedź: Aby obliczyć liczbę samogłosek i spółgłosek w strunie, wykonaj następujące kroki:
- Pobierz ciąg, na którym ma zostać wykonane liczenie.
- Uruchom pętlę od 0 do długości łańcucha.
- Weź po jednym znaku na raz i sprawdź, czy należy on do grupy samogłosek.
- Jeśli wynik jest prawdziwy, zwiększ liczbę samogłosek lub zwiększ liczbę spółgłosek.
Fragment kodu:
for (int k = 0; k Q # 6) W jaki sposób udowodnisz, że te dwie struny są anagramami?
Odpowiedź: Dwa łańcuchy nazywane są anagramami, jeśli zawierają podobną grupę znaków w zróżnicowanej kolejności.
Aby sprawdzić, czy dwa ciągi są anagramami, wykonaj następujące kroki:
- Zainicjuj dwa ciągi w dwóch zmiennych.
- Sprawdź, czy długość dwóch strun jest podobna, jeśli nie, to struny nie są anagramem.
- Jeśli wynik jest prawdziwy, weź dwa ciągi i zapisz je w tablicy znaków.
- Posortuj dwie tablice znaków, a następnie sprawdź, czy dwie posortowane tablice są podobne.
- Jeśli wynik jest prawdziwy, dwa ciągi są anagramem, a nie anagramem.
Fragment kodu:
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) Znajdź liczbę wystąpień określonego znaku w ciągu.
Odpowiedź: Aby policzyć wystąpienie określonego znaku w ciągu, wykonaj następujące kroki:
- Zacznij od ciągu znaków i określonego znaku, którego wystąpienie ma być liczone.
- Rozpocznij pętlę od 0 do długości łańcucha.
- Porównaj, czy określony znak ciągu jest równy znakowi, który jest przeszukiwany.
- Jeśli wynik jest prawdziwy, zwiększ wartość licznika.
Fragment kodu:
for (int l=0; l P # 8) Jak sprawdzić, czy dwa łańcuchy się obracają?
Odpowiedź: Aby sprawdzić, czy dwa ciągi się wzajemnie rotują, wykonaj następujące kroki:
- Zainicjuj dwa ciągi w dwóch zmiennych.
- Sprawdź, czy długość dwóch ciągów jest podobna, jeśli nie, zwróć false.
- Połącz sznurek ze sobą.
- Sprawdź, czy obrócony ciąg jest obecny w połączonym ciągu.
- Jeśli wynik jest prawdziwy, drugi ciąg jest rotacją pierwszego ciągu.
Fragment kodu:
String concat = org_string + org_string; if (concat.indexOf (rotat) ! = -1) { return true; }
P # 9) Jak obliczyć liczbę cyfr w ciągu?
Odpowiedź: Aby obliczyć liczbę cyfr w ciągu, wykonaj następujące kroki:
- Pobierz ciąg, na którym ma zostać wykonane liczenie
- Użyj funkcji replaceAll, która zamienia wszystkie cyfry na „”.
- Uzyskaj długość ciągu bez cyfr.
Fragment kodu:
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); } }
W tym rozwiązaniu używane jest wyrażenie regularne.
P # 10) Jak obliczyć pierwszy znak łańcucha, który się nie powtarza?
Odpowiedź: Aby obliczyć pierwszy znak ciągu, który nie jest powtarzany, wykonaj następujące kroki:
- Przyjmowana jest struktura danych zestawu dla powtarzających się znaków i lista dla znaku niepowtarzalnego.
- Po oddzieleniu powtarzających się i niepowtarzanych, na końcu iteracji, w konsoli drukowany jest pierwszy element listy.
Fragment kodu:
Set repeated = new HashSet(); List nonRepeated = new ArrayList(); for (int m = 0; m P # 11) Jak wyszukać brakującą liczbę w tablicy zawierającej liczby całkowite od 1 do 100?
Odpowiedź: Aby wyszukać brakującą liczbę w tablicy zawierającej liczby całkowite od 1 do 100, wykonaj następujące kroki:
- Weź tablicę liczb całkowitych zawierającą liczby od 1 do 100.
- Obliczyć sumę liczb, suma powinna wynosić = l * (l + 1) / 2, gdzie l jest liczbą liczb całkowitych.
- Wykonaj odjęcie brakującego elementu od całkowitego dodania liczb.
P # 12) Jak uzyskać pasujące elementy w tablicy liczb całkowitych?
Odpowiedź: Aby uzyskać pasujące elementy w tablicy liczb całkowitych, wykonaj następujące kroki:
- Zbuduj dwie pętle.
- W pierwszej pętli zbierz elementy pojedynczo i zsumuj liczbę wystąpień wybranego elementu.
Fragment kodu:
for (m = 0; m Q # 13) Jak usunąć powtarzające się elementy w tablicy liczb całkowitych?
Odpowiedź: Aby usunąć powtarzające się elementy z tablicy liczb całkowitych, wykonaj następujące kroki:
- Zbuduj hashmap, który wybierze wszystkie elementy, które były wcześniej obecne.
- Przejdź przez tablicę i sprawdź, czy element już istnieje w mapie skrótów
- Jeśli wynik jest prawdziwy, przeglądanie tablicy jest kontynuowane, w przeciwnym razie element jest drukowany w konsoli.
Fragment kodu:
HashMap m = new HashMap(); for (int j = 0; j Q # 14) Określ największy i najmniejszy element tablicy, który nie jest posortowany.
Odpowiedź: Aby określić największy i najmniejszy element tablicy, należy wykonać poniższe czynności:
- Przeszukuj tablicę i monitoruj maksymalny dotychczas znaleziony element, aż znajdziemy się na granicy tablicy, największy element zostanie osiągnięty.
- Przeszukuj tablicę i monitoruj minimum znalezionego do tej pory elementu, aż znajdziemy się na granicy tablicy, najmniejszy element zostanie osiągnięty.
Q # 15) Wyjaśnij algorytm sortowania bąbelkowego.
Odpowiedź: Algorytm sortowania bąbelkowego obejmuje następujące kroki:
- Rozpocznij od pierwszego elementu, a następnie przeprowadź porównanie z następnym elementem tablicy
- Jeśli obecny element jest większy niż następny element tablicy, zamień ich pozycje.
- Jeśli obecny element jest mniejszy niż następny element tablicy, przejdź do następnego elementu i ponownie powtórz krok 1.
Fragment kodu:
for(k = 0; k Q # 16) Zaimplementuj algorytm sortowania przez wstawianie.
Odpowiedź: Realizacja sortowania przez wstawianie.
Fragment kodu:
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) Określ drugi co do wielkości element tablicy.
Odpowiedź: Drugi co do wielkości element tablicy można obliczyć, wykonując następujące kroki:
- Podaj największy element jako pierwszy element tablicy, a drugi co do wielkości jako drugi element tablicy.
- Iteruj przez pętlę, aby przejść przez tablicę.
- JEŚLI arry (i) jest większe niż największy element TO
Drugi element? największy element
Największy element? Arry (i)
JEŻELI drugi element jest mniejszy niż arry (i) TO
Drugi element? Arry (i)
Fragment kodu:
if(arry(0) > arry(1)) { l = arry(0); s = arry(1); } else { l = arry(1); s = arry(0); } for(i = 2; i P # 18) Wyjaśnij odwrócenie tablicy.
Odpowiedź: Odwrócenie tablicy odbywa się w następujący sposób:
- Weź tablicę z elementami.
- Teraz zamień położenie pierwszego elementu z elementem końcowym i podobnie drugiego elementu z elementem przedostatnim.
- Będzie to trwało, dopóki cała tablica nie zostanie odwrócona.
Fragment kodu:
for (t = 0; t P # 19) Jak usunąć znaki specjalne w ciągu napisanym małymi literami?
Odpowiedź: Znaki specjalne w ciągu można usunąć za pomocą funkcji replaceAll w języku Java.
Fragment kodu:
string str = “Testing@” str.replaceAll(“(^a-z0-9)”,””)
W tym rozwiązaniu używane jest wyrażenie regularne.
Q # 20) Jak wykonać zamianę dwóch ciągów, nie używając trzeciej zmiennej?
Odpowiedź: Dwa łańcuchy są zamieniane bez pomocy trzeciej zmiennej w następujący sposób:
(ja) Weź dwa ciągi i, j, dołącz je, a następnie zapisz w pierwszym.
(ii) Używając metody podciąg, wyodrębnij ciąg:
j = substring(0,i.length()-j.length())
(iii) Przechowuj ciąg j w łańcuchu i
i= subsrtirng(j.length)
Fragment kodu:
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) Jak przejść do środka połączonej listy?
Odpowiedź: Aby przejść do środka połączonej listy, wykonaj poniższe czynności:
- Zadeklaruj dwa wskaźniki, pierwszy i drugi, które są inicjowane w nagłówku połączonej listy.
- Zwiększ pierwszą połączoną listę o dwa węzły, a drugą o jeden węzeł w każdej pętli.
- Podczas gdy pierwszy węzeł osiągnie koniec listy, drugi węzeł będzie wskazywał na środek.
Fragment kodu:
first = second = head; while(first !=null) { first = first.next; if(first != null && first.next != null) { second = second.next; first = first.next; } } return second; }
P # 22) Zaimplementuj proces odwracania połączonej listy.
Odpowiedź: Połączoną listę można odwrócić, wykonując poniższe czynności:
- Zadeklaruj trzy węzły poprzedzające, obecne i następujące.
- W obecnym węźle poprzedni będzie miał wartość null.
- Niech present.next poprzedza, aby odwrócić listę.
- W każdej pętli, obecny i poprzedni są zwiększane o 1.
Fragment kodu:
Node preceding=null; Node following while(present!=null) { following=present.next; present.next=preceding; preceding=present; present=following; } return preceding; }
P # 23) Jak wygląda proces usuwania dopasowanych elementów z połączonej listy, która nie jest posortowana.
Odpowiedź: Aby usunąć pasujące elementy z połączonej listy, która nie jest posortowana, wykonaj następujące kroki:
- Podróżuj od głowy do końca połączonej listy.
- Dla każdej wartości na połączonej liście sprawdź, czy jest już obecna w tabeli skrótów.
- Jeśli wynik jest prawdziwy, element nie jest dodawany do tablicy skrótów.
Fragment kodu:
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) Jak uzyskać długość połączonej listy?
Odpowiedź: Aby uzyskać długość połączonej listy, wykonaj następujące kroki:
- Uruchom licznik z wartością 0 i przedstaw węzeł jako głowę.
- Dopóki obecny węzeł nie jest pusty, wykonaj następujące czynności:
- obecny = obecny -> następny
- licznik = licznik + 1
- Zwracana jest wartość licznika.
Fragment kodu:
{ Node present = head; int c = 0; while (present != null) { c = c + 1; present = present.next; } return c; }
P # 25) Jak wyszukać określoną wartość na połączonej liście?
Odpowiedź: Aby wyszukać określoną wartość na połączonej liście, wykonaj następujące kroki:
- Zadeklaruj obecny węzeł jako głowę.
- Dopóki obecny węzeł nie jest pusty, wykonaj następujące czynności:
- obecna -> wartość jest równa szukanej wartości, która zwraca prawdę.
- obecny = obecny -> następny.
- Jeśli nie zostanie znaleziony, zwracany jest false.
Fragment kodu:
Node present = head; while (present != null) { if (present.value == value) return true; present = present.next; } return false; }
P # 26) Jak sprawdzić, czy liczba jest liczbą pierwszą, czy nie?
Odpowiedź: Aby sprawdzić, czy liczba jest liczbą pierwszą, czy nie, wykonaj następujące kroki:
- Rozpocznij pętlę od wartości 2 (k) do (liczba / 2)
- Jeśli liczba jest całkowicie podzielna przez k, to jest to liczba inna niż pierwsza.
- Jeśli liczba nie jest doskonale podzielna z wyjątkiem 1 i samej siebie, to jest liczbą pierwszą.
Fragment kodu:
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) Jak uzyskać trzeci węzeł połączonej listy?
Odpowiedź: Aby dostać się do trzeciego węzła na połączonej liście, wykonaj poniższe czynności:
- Uruchom licznik z wartością 0.
- Przejdź przez połączoną listę i wykonaj następujące kroki:
- Jeśli wartość licznika wynosi 3, zwracany jest obecny węzeł.
- Licznik zostaje zwiększony o 1.
- Zmodyfikuj teraźniejszość tak, aby sugerowała następną teraźniejszość.
Fragment kodu:
Node present = head; int c = 0; while (c != null) { if (c == 3) return present.val; c = c+1; present = present.next; }
Q # 28) Oblicz pierwsze pięć liczb Fibonacciego.
Odpowiedź: 0 i 1 to pierwsze dwie liczby Fibonacciego, a wszystkie liczby po 0 i 1 są sumą dwóch poprzednich liczb.
Fragment kodu:
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) Jak odwrócić numer?
Odpowiedź: Odwrócenie liczby uzyskuje się w następujących krokach:
- Usuń skrajną prawą cyfrę liczby.
- Zsumuj cyfrę z nową odwróconą liczbą.
- Wykonaj pomnożenie przez 10.
- Podziel liczbę przez 10.
Q # 30) Określ czynniki liczby.
Odpowiedź: Czynniki liczby są wyrażone za pomocą następującego fragmentu kodu:
int no = 75; for(int j = 1; j <= no; j++) { if (no % j == 0) { System.out.print(j); }
Wniosek
Mamy nadzieję, że wiele odpowiedzi na pytania dotyczące podstawowych pytań z rozmowy kwalifikacyjnej zostało wyjaśnionych.
jak wywołać tablicę w java
Większość implementacji kodowania, które omówiliśmy, jest w Javie, jednak nawet jeśli nie znasz języka, kroki lub szczegóły algorytmu podane tutaj dla większości pytań pomogą Ci przygotować się do rozmowy kwalifikacyjnej.
Pracuj ciężko nad podstawami programowania, logiki, struktur danych, zachowaj spokój i przećwicz te pytania z wywiadu programistycznego.
Wszystkiego najlepszego z okazji nadchodzącego wywiadu !!
rekomendowane lektury
- Pytania i odpowiedzi do wywiadu
- ETL Pytania i odpowiedzi podczas rozmowy kwalifikacyjnej testującej
- Niektóre trudne pytania i odpowiedzi do testowania ręcznego
- 30 najważniejszych pytań i odpowiedzi HTML do wywiadów (LISTA 2021)
- Top 30+ popularnych pytań i odpowiedzi do wywiadów z ogórkami
- 30 najpopularniejszych pytań i odpowiedzi do wywiadów SAS
- 30 najpopularniejszych pytań i odpowiedzi do wywiadów DBMS
- 30 najczęściej zadawanych pytań i odpowiedzi na rozmowę z testami bezpieczeństwa