top 30 programming coding interview questions answers
V tomto výukovém programu jsme vám poskytli nejčastější dotazy a odpovědi na otázky týkající se kódovacího rozhovoru s programovou logikou a příklady kódu, abyste si mohli procvičit programování:
Všichni jsme si vědomi, že odpověď na nejzákladnější otázky týkající se kódování nebo programování rozhovoru určuje, jak si v rozhovoru vedeme. Rozhovor může být pro Java, C ++ nebo požadavek Javascript, ale základ zůstává stejný, to je, jak silní jsme v základech programovací logiky.
Také pokud je náš přístup v rozhovoru pohotový a subtilní, pravděpodobnost výběru je vyšší. Takže čtěte dále a prolomte otázky týkající se kódovacího pohovoru.
Nezapomeňte si tyto otázky týkající se programování pohovoru prostudovat a procvičit, než se pohovoru zúčastníte. To nejen zvýší vaše přesvědčení, ale také pomůže rychle na ně odpovědět. Otázky se budou týkat hlavně předmětů, jako jsou pole, řetězec, propojený seznam atd.
Vytáhněte ponožky, hoši !!
Často kladené otázky týkající se základního programování / kódování
Q # 1) Jak můžete převrátit řetězec?
Odpověď: Řetězec je obrácen pomocí následujícího algoritmu:
- Zahájit
- Řetězec, který má být obrácen, je deklarován.
- Zjistěte délku řetězce.
- Spusťte smyčku a poté vyměňte pozici prvků pole.
- Udržujte vyměněné pozice.
- Vytiskněte obrácený řetězec.
Otázka 2) Co je to palindromový řetězec?
Odpovědět: Po obrácení řetězce, jak je popsáno v Q # 1, musíme dát následující podmínku:
Fragment kódu:
if(actualtxt.equals(reversetxt)){ return “Palindrome”; else return “Not Palindrome”; }
Palindromový řetězec je tedy ten, který při couvání zůstává stejný, například, - ‚madam‘ je palindromový řetězec.
Otázka č. 3) Jak získat odpovídající znaky v řetězci?
Odpověď: Chcete-li získat odpovídající znaky v řetězci, postupujte podle následujících kroků:
- Je převzata datová struktura Hash Map, která pracuje s párem klíč – hodnota.
- Loop the strings, character by character, and verify if that character of the string exists in the hash map or not.
- Pokud je výsledek pravdivý, počítadlo pro znak v hašovací mapě se zvýší, jinak se počítá jako 1.
- Jakmile smyčka skončí, prochází se mapa hash a tiskne znaky s více než 1 počtem.
Fragment kódu:
HashMap mp = new HashMap (); for (int j = 0; j1){ System.out.println(ch+ ' - ' + c); } }
Otázka č. 4) Jak získat neodpovídající znaky v řetězci?
Odpovědět: Chcete-li získat neodpovídající znaky v řetězci, postupujte podle následujících kroků:
- Je převzata datová struktura Hash Map, která pracuje s párem klíč – hodnota.
- Vytvořte smyčku řetězce, znak po znaku, a ověřte, zda daný znak řetězce existuje v hash mapě nebo ne.
- Pokud je výsledek pravdivý, počítadlo pro znak v hašovací mapě se zvýší, jinak se počítá jako 1.
- Jakmile smyčka skončí, prochází se Hash mapou a vytiskne znaky s počtem rovným 1.
Fragment kódu:
HashMap mp = new HashMap (); for (int j = 0; j Otázka č. 5) Jak vypočítat počet samohlásek a souhlásek v řetězci?
Odpověď: Chcete-li vypočítat počet samohlásek a souhlásek v řetězci, postupujte podle následujících kroků:
- Získejte řetězec, na kterém je třeba provést počet.
- Spusťte smyčku od 0 do délky řetězce.
- Vezměte po jednom znaku a ověřte, zda jsou součástí skupiny samohlásek.
- Pokud je výsledek pravdivý, zvyšte počet samohlásek nebo zvyšte počet souhlásek.
Fragment kódu:
for (int k = 0; k Otázka č. 6) Jak prokážete, že tyto dva řetězce jsou přesmyčky?
Odpovědět: Dva řetězce se nazývají přesmyčky, pokud pojmou podobnou skupinu znaků v pestré posloupnosti.
Chcete-li zkontrolovat, zda jsou dva řetězce anagramy, postupujte podle následujících kroků:
- Inicializujte dva řetězce ve dvou proměnných.
- Zkontrolujte, zda je délka dvou řetězců podobná, pokud ne, pak řetězce nejsou přesmyčka.
- Pokud je výsledek pravdivý, vezměte dva řetězce a uložte je do pole znaků.
- Seřaďte pole dvou znaků a poté zkontrolujte, zda jsou dvě seřazená pole stejná.
- Pokud je výsledek pravdivý, dva řetězce jsou přesmyčka else, nikoli přesmyčka.
Fragment kódu:
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) Najděte počet výskytů konkrétního znaku v řetězci.
Odpověď: Chcete-li spočítat výskyt konkrétního znaku v řetězci, postupujte podle následujících kroků:
- Začněte řetězcem a konkrétním znakem, jehož výskyt se bude počítat.
- Začněte smyčku od 0 do délky řetězce.
- Porovnejte, pokud se konkrétní znak řetězce rovná znaku, který je prohledáván.
- Pokud je výsledek pravdivý, zvyšte hodnotu čítače.
Fragment kódu:
for (int l=0; l Otázka č. 8) Jak ověřit, zda jsou dva řetězce vzájemně rotovány?
Odpověď: Chcete-li ověřit, zda jsou dva řetězce vzájemně rotací, postupujte podle následujících kroků:
- Inicializujte dva řetězce ve dvou proměnných.
- Zkontrolujte, zda je délka dvou řetězců podobná, pokud ne, vraťte false.
- Připojte k sobě řetězec.
- Ověřte, zda se řetězec, který se otáčí, nachází ve spojeném řetězci.
- Pokud je výsledek pravdivý, druhý řetězec je rotací prvního řetězce.
Fragment kódu:
String concat = org_string + org_string; if (concat.indexOf (rotat) ! = -1) { return true; }
Otázka č. 9) Jak vypočítat počet číslic v řetězci?
Odpověď: Chcete-li vypočítat počet číslic v řetězci, postupujte podle následujících kroků:
- Získejte řetězec, na kterém je třeba provést počet
- Použijte funkci replaceAll, která nahradí všechny číselné číslice znakem „“.
- Získejte délku řetězce bez číslic.
Fragment kódu:
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); } }
V tomto řešení se používá regulární výraz.
Otázka č. 10) Jak vypočítat první znak řetězce, který se neopakuje?
Odpověď: Chcete-li vypočítat první znak řetězce, který se neopakuje, postupujte podle následujících kroků:
- Bude převzata datová struktura Set pro opakované znaky a seznam pro neopakující se znaky.
- Po oddělení opakovaných a neopakujících se na konci iterace se v konzole vytiskne první prvek seznamu.
Fragment kódu:
Set repeated = new HashSet(); List nonRepeated = new ArrayList(); for (int m = 0; m Otázka č. 11) Jak vyhledat chybějící číslo v poli, které obsahuje celá čísla od 1 do 100?
Odpověď: Chcete-li vyhledat chybějící číslo v poli, které obsahuje celá čísla od 1 do 100, postupujte podle následujících kroků:
- Vezměte celé číslo s čísly od 1 do 100.
- Vypočítejte součet čísel, součet musí být = l * (l + 1) / 2, kde l je počet celých čísel.
- Proveďte odečtení chybějícího prvku od celkového sčítání čísel.
Otázka č. 12) Jak získat odpovídající prvky v celočíselném poli?
Odpověď: Chcete-li získat odpovídající prvky v celočíselném poli, postupujte podle následujících kroků:
- Vytvořte dvě smyčky.
- V první smyčce sbírejte prvky jeden po druhém a sečtěte počet instancí vybraného prvku.
Fragment kódu:
for (m = 0; m Otázka č. 13) Jak odstranit opakované prvky v celočíselném poli?
Odpověď: Chcete-li odstranit opakované prvky v celočíselném poli, postupujte podle následujících kroků:
- Vytvořte hashmapu, která vybere všechny prvky, které jsou přítomny dříve.
- Prohlédněte si pole a ověřte, zda prvek již existuje v hash mapě
- Pokud je výsledek pravdivý, pokračuje se v procházení pole, jinak se prvek vytiskne v konzole.
Fragment kódu:
HashMap m = new HashMap(); for (int j = 0; j Otázka č. 14) Určete největší a nejmenší prvek pole, které není tříděno.
Odpověď: K určení největšího a nejmenšího prvku pole je třeba postupovat podle následujících kroků:
- Projděte pole a sledujte dosud nalezený maximální prvek, dokud nebudeme na hranici pole, bude dosaženo největšího prvku.
- Projděte pole a sledujte dosud nalezený minimální prvek, dokud nebudeme na hranici pole, bude dosaženo nejmenšího prvku.
Otázka č. 15) Vysvětlete algoritmus třídění bublin.
Odpověď: Algoritmus třídění bublin zahrnuje následující kroky:
- Začněte od prvního prvku a poté proveďte porovnání s následujícím prvkem v poli
- Pokud je aktuální prvek větší než následující prvek pole, vyměňte jejich pozice.
- Pokud je aktuální prvek menší než následující prvek pole, přesuňte se na další prvek a znovu opakujte krok 1.
Fragment kódu:
for(k = 0; k Otázka č. 16) Implementujte algoritmus třídění vkládání.
Odpovědět: Implementace třídění vkládání.
Fragment kódu:
for (m = 1; m 0 && arry(n - 1) > arry(n)) { k = arry(n); arry(n) = arry(n - 1); arry(n - 1) = k; n--; } }
Otázka č. 17) Určete druhý největší prvek pole.
implementace grafu v c ++
Odpověď: Druhý největší prvek pole lze vypočítat podle následujících kroků:
- Největší prvek uveďte jako první prvek pole a druhý největší prvek jako druhý prvek pole.
- Iterujte smyčkou pro procházení pole.
- IF arry (i) je větší než největší prvek PAK
Druhý prvek? největší prvek
Největší prvek? Arry (i)
KDYŽ je druhý prvek menší než arry (i) PAK
Druhý prvek? Arry (i)
Fragment kódu:
if(arry(0) > arry(1)) { l = arry(0); s = arry(1); } else { l = arry(1); s = arry(0); } for(i = 2; i Otázka č. 18) Vysvětlete obrácení pole.
Odpověď: Obrácení pole se provádí následujícími způsoby:
- Vezměte pole s prvky.
- Nyní vyměňte pozici prvního prvku s posledním prvkem a podobně druhý prvek s předposledním prvkem.
- To bude pokračovat, dokud nebude obráceno celé pole.
Fragment kódu:
for (t = 0; t Otázka č. 19) Jak odstranit speciální znaky z řetězce, který je malými písmeny?
Odpovědět: Speciální znaky v řetězci lze odstranit pomocí funkce replaceAll v Javě.
Fragment kódu:
string str = “Testing@” str.replaceAll(“(^a-z0-9)”,””)
V tomto řešení se používá regulární výraz.
Otázka č. 20) Jak provést výměnu dvou řetězců nepoužíváním třetí proměnné?
Odpověď: Dva řetězce jsou zaměněny bez pomoci třetí proměnné pomocí následujících kroků:
(i) Vezměte dva řetězce i, j, připojte je a poté uložte do prvního řetězce.
ii) Pomocí metody podřetězce extrahujte řetězec:
j = substring(0,i.length()-j.length())
(iii) Uložte řetězec j do řetězce i
i= subsrtirng(j.length)
Fragment kódu:
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);
Otázka č. 21) Jak přejít do středu propojeného seznamu?
Odpověď: Chcete-li přejít doprostřed propojeného seznamu, postupujte podle následujících kroků:
- Deklarujte dva ukazatele první a druhý, které jsou inicializovány na hlavičku propojeného seznamu.
- Zvyšte první propojený seznam o dva uzly a druhý o jeden uzel v každé smyčce.
- Zatímco první uzel dosáhne konce seznamu, druhý uzel bude směřovat do středu.
Fragment kódu:
first = second = head; while(first !=null) { first = first.next; if(first != null && first.next != null) { second = second.next; first = first.next; } } return second; }
Otázka č. 22) Implementujte proces obrácení propojeného seznamu.
Odpověď: Propojený seznam lze obrátit pomocí následujících kroků:
- Deklarujte tři uzly předcházející, přítomné a následující.
- Zatímco v tomto uzlu bude předchozí mít hodnotu null.
- Chcete-li seznam obrátit, nechte předcházet present.next.
- V každé smyčce jsou přítomné a předchozí hodnoty zvýšeny o 1.
Fragment kódu:
Node preceding=null; Node following while(present!=null) { following=present.next; present.next=preceding; preceding=present; present=following; } return preceding; }
Otázka č. 23) Jaký je proces odstraňování shodných prvků z propojeného seznamu, který není tříděn.
Odpověď: Chcete-li odstranit odpovídající prvky z propojeného seznamu, který není tříděn, postupujte podle následujících kroků:
- Cestujte od hlavy k ocasu propojeného seznamu.
- U každé hodnoty v propojeném seznamu ověřte, zda je již v hašovací tabulce.
- Pokud je výsledek pravdivý, prvek se nepřidá do hash tabulky.
Fragment kódu:
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; } }
Otázka č. 24) Jak zjistit délku propojeného seznamu?
Odpovědět: Chcete-li zjistit délku propojeného seznamu, postupujte podle následujících kroků:
- Spusťte čítač s hodnotou 0 a prezentujte uzel jako head.
- Dokud aktuální uzel není null, proveďte tyto:
- present = present -> next
- counter = counter + 1
- Vrátí se hodnota čítače.
Fragment kódu:
{ Node present = head; int c = 0; while (present != null) { c = c + 1; present = present.next; } return c; }
Otázka č. 25) Jak vyhledat konkrétní hodnotu v propojeném seznamu?
Odpověď: Chcete-li vyhledat konkrétní hodnotu v propojeném seznamu, postupujte podle následujících kroků:
- Prohlásit přítomný uzel za hlavu.
- Dokud aktuální uzel není null, proveďte tyto:
- present -> value is equal to the value being looks for return true.
- present = present -> next.
- Pokud není nalezen, vrátí se false.
Fragment kódu:
Node present = head; while (present != null) { if (present.value == value) return true; present = present.next; } return false; }
Otázka č. 26) Jak ověřit, zda je číslo prvočíslo nebo ne?
Odpovědět: Chcete-li ověřit, zda je číslo prvočíslo nebo ne, postupujte podle následujících kroků:
- Spusťte smyčku od hodnoty 2 (k) do (číslo / 2)
- Pokud je číslo dokonale dělitelné číslem k, pak je číslo neprvořadé.
- Pokud číslo není dokonale dělitelné, kromě 1 a samo o sobě, pak je číslo prvočíslo.
Fragment kódu:
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');
Otázka č. 27) Jak získat třetí uzel propojeného seznamu?
Odpověď: Chcete-li se dostat do třetího uzlu propojeného seznamu, postupujte podle následujících kroků:
- Spusťte čítač s hodnotou 0.
- Procházejte propojeným seznamem a proveďte tyto kroky:
- Pokud je hodnota čítače 3, vrátí se aktuální uzel.
- Počítadlo se zvýší o 1.
- Upravte přítomnost tak, aby to znamenalo pro další přítomnost.
Fragment kódu:
Node present = head; int c = 0; while (c != null) { if (c == 3) return present.val; c = c+1; present = present.next; }
Otázka č. 28) Vypočítejte prvních pět Fibonacciho čísel.
Odpovědět: 0 a 1 jsou první dvě čísla Fibonacci a všechna čísla za 0 a 1 jsou součtem dvou předchozích čísel.
Fragment kódu:
int num1=0, num2=1,t; for ( int k = 0; k<5,k++) { System.out.println(num1); t = num1 + num2; num1 = num2; num2 = t; }
Otázka č. 29) Jak obrátit číslo?
Odpověď: Zrušení čísla je dosaženo v následujících krocích:
- Vyjměte číslici napravo od čísla.
- Sečtěte číslici s novým obráceným číslem.
- Proveďte násobení o 10.
- Vydělte číslo 10.
Q # 30) Určete faktory čísla.
Odpověď: Faktory čísla jsou vyjádřeny následujícím fragmentem kódu:
int no = 75; for(int j = 1; j <= no; j++) { if (no % j == 0) { System.out.print(j); }
Závěr
Doufáme, že mnoho odpovědí na vaše dotazy týkající se otázek základního kódovacího pohovoru bylo objasněno.
Většina implementace kódování, o které jsme hovořili, je v Javě, nicméně i když si nejste vědomi jazyka, kroky nebo podrobnosti zde uvedeného algoritmu pro většinu otázek vám pomohou připravit se na rozhovor.
Tvrdě pracujte na svých základech programování, logice, datových strukturách, zůstaňte klidní a procvičujte si tyto otázky týkající se programovacích rozhovorů.
Vše nejlepší pro váš nadcházející rozhovor !!
Doporučené čtení
- Dotazy a odpovědi na pohovor
- ETL Testing Interview Otázky a odpovědi
- Některé složité otázky a odpovědi týkající se ručního testování
- 30 nejdůležitějších otázek a odpovědí na rozhovor s HTML (SEZNAM 2021)
- Top 30+ populárních otázek a odpovědí na rozhovor s okurkou
- Top 30 SAS Interview Dotazy a odpovědi
- Top 30 DBMS Interview Otázky a odpovědi
- Top 30 bezpečnostních testovacích dotazů a odpovědí