top 30 programming coding interview questions answers
Bu Eğitimde, Programlama Pratiği Yapmanız için Program Mantığı ve Kod Örnekleri ile En Yaygın Kodlama Görüşme Soruları ve Cevaplarını Sağladık:
Hepimiz en temel kodlama veya programlama mülakat sorularını yanıtlamanın bir röportajda nasıl performans gösterdiğimizi belirlediğinin farkındayız. Görüşme Java, C ++ veya Javascript gereksinimi için olabilir, ancak temel aynı kalır, programlama mantığının temellerinde ne kadar güçlü olduğumuzdur.
Ayrıca, bir görüşmede yaklaşımımız hızlı ve ince ise, seçim olasılığı daha yüksektir. Bu yüzden kodlama mülakat sorularını çözmek için okumaya devam edin.
Bir röportajla karşılaşmadan önce bu programlama mülakat sorularını çalışmayı ve pratik yapmayı unutmayın. Bu sadece inancınızı artırmakla kalmayacak, aynı zamanda onlara hızlı cevap vermenize de yardımcı olacaktır. Sorular esas olarak diziler, dizgi, bağlantılı liste vb. Konuları kapsayacaktır.
Çoraplarınızı yukarı çekin çocuklar !!
Sıkça Sorulan Temel Programlama / Kodlama Görüşmesi Soruları
S # 1) Bir dizeyi nasıl tersine çevirebilirsiniz?
Cevap: Aşağıdaki algoritma ile dizge tersine çevrilir:
- Başlat
- Tersine çevrilecek dizge bildirilir.
- İpin uzunluğunu alın.
- Bir döngü başlatın ve ardından dizi öğelerinin konumunu değiştirin.
- Değiştirilen pozisyonları koruyun.
- Ters dizeyi yazdırın.
S # 2) Palindrom dizesi nedir?
Cevap: Dize, Q # 1'de tartışıldığı gibi ters çevrildikten sonra, aşağıdaki koşulu koymamız gerekiyor:
java dizisine eleman ekle örneği
Kod pasajı:
if(actualtxt.equals(reversetxt)){ return “Palindrome”; else return “Not Palindrome”; }
Dolayısıyla, palindrom ipi, tersine dönerken aynı kalan iptir, Örneğin, - 'madam' bir palindrom dizesidir.
S # 3) Bir dizede eşleşen karakterler nasıl elde edilir?
Cevap: Bir dizede eşleşen karakterleri elde etmek için aşağıdaki adımlar izlenir:
- Anahtar-değer çifti ile çalışan Hash Map veri yapısı alınır.
- Dizeleri karakter karakter döngü yapın ve dizenin bu karakterinin karma haritada var olup olmadığını doğrulayın.
- Sonuç doğruysa, karma haritadaki karakter için sayaç artar veya daha sonra 1 olarak bir sayı verilir.
- Döngü sona erdiğinde, Hash haritası çaprazlanır ve 1'den fazla sayıya sahip karakterleri yazdırır.
Kod pasajı:
HashMap mp = new HashMap (); for (int j = 0; j1){ System.out.println(ch+ ' - ' + c); } }
S # 4) Bir dizedeki eşleşmeyen karakterler nasıl elde edilir?
Cevap: Bir dizedeki eşleşmeyen karakterleri elde etmek için aşağıdaki adımlar izlenir:
- Anahtar-değer çifti ile çalışan Hash Map veri yapısı alınır.
- Dizeyi, karakter karakter döngü yapın ve dizenin bu karakterinin karma haritada bulunup bulunmadığını doğrulayın.
- Sonuç doğruysa, karma haritadaki karakter için sayaç artar veya daha sonra 1 olarak bir sayı verilir.
- Döngü sona erdiğinde, Hash haritası çaprazlanır ve karakterleri 1'e eşit bir sayı ile yazdırır.
Kod pasajı:
HashMap mp = new HashMap (); for (int j = 0; j S # 5) Bir dizedeki ünlülerin ve ünsüzlerin sayısı nasıl hesaplanır?
Cevap: Bir dizedeki sesli ve sessiz harflerin sayısını hesaplamak için aşağıdaki adımlar takip edilir:
- Saymanın gerçekleştirilmesi gereken dizeyi alın.
- 0'dan dizenin uzunluğuna kadar bir döngü çalıştırın.
- Her seferinde tek bir karakter alın ve sesli harfler grubunun bir parçası olup olmadıklarını kontrol edin.
- Sonuç doğruysa, ünlülerin sayısını artırın ya da ünsüzlerin sayısını artırın.
Kod pasajı:
for (int k = 0; k S # 6) İki dizgenin anagram olduğunu nasıl kanıtlarsınız?
Cevap: Farklı bir sırayla benzer bir karakter grubunu barındırıyorlarsa iki diziye anagram denir.
İki dizenin anagram olup olmadığını kontrol etmek için aşağıdaki adımlar izlenir:
- İki değişkende iki dizeyi başlatın.
- İki dizenin uzunluğunun benzer olup olmadığını kontrol edin, değilse dizeler bir anagram değildir.
- Sonuç doğruysa, iki dizeyi alın ve bir karakter dizisinde saklayın.
- İki karakter dizisini sıralayın, ardından sıralanan iki dizinin aynı olup olmadığını kontrol edin.
- Sonuç doğruysa, iki dizi anagram değil, anagramdır.
Kod pasajı:
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'); } }
S # 7) Bir dizedeki belirli bir karakterin oluşum sayısını bulun.
Cevap: Bir dizedeki belirli bir karakterin oluşumunu saymak için aşağıdaki adımlar izlenir:
- Bir dizeyle ve oluşumu sayılacak belirli bir karakterle başlayın.
- 0'dan dizenin uzunluğuna kadar bir döngü başlatın.
- Dizenin belirli bir karakterinin aranan karaktere eşit olup olmadığını karşılaştırın.
- Sonuç doğruysa, sayacın değerini artırın.
Kod pasajı:
for (int l=0; l S # 8) İki dizenin karşılıklı olarak rotasyon olup olmadığı nasıl doğrulanır?
Cevap: İki dizenin karşılıklı olarak rotasyon olup olmadığını doğrulamak için aşağıdaki adımlar takip edilir:
- İki dizgeyi iki değişkende başlatın.
- Yanlış döndürmüyorsa, iki dizenin uzunluğunun benzer olup olmadığını kontrol edin.
- Dizeyi kendisiyle birleştirin.
- Döndürülen dizenin birleştirilen dizede olup olmadığını doğrulayın.
- Sonuç doğruysa, ikinci dize ilk dizenin dönüşüdür.
Kod pasajı:
String concat = org_string + org_string; if (concat.indexOf (rotat) ! = -1) { return true; }
S # 9) Bir dizedeki sayısal basamakların sayısı nasıl hesaplanır?
Cevap: Bir dizedeki basamak sayısını hesaplamak için aşağıdaki adımlar izlenir:
- Saymanın gerçekleştirilmesi gereken dizeyi alın
- Tüm sayısal rakamları '' ile değiştiren replaceAll işlevini kullanın.
- Dizenin uzunluğunu rakamlar olmadan alın.
Kod pasajı:
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); } }
Bu çözümde düzenli bir ifade kullanılır.
S # 10) Tekrarlanmayan bir dizenin ilk karakteri nasıl hesaplanır?
Cevap: Bir dizinin tekrar edilmeyen ilk karakterini hesaplamak için aşağıdaki adımlar takip edilir:
- A Tekrarlanan karakterler için Veri yapısını ayarla ve tekrarlanmayan karakterler için bir liste alınır.
- Yinelemenin sonunda yinelenen ve yinelenmeyen ayrıştırıldıktan sonra, listenin ilk öğesi konsolda yazdırılır.
Kod pasajı:
Set repeated = new HashSet(); List nonRepeated = new ArrayList(); for (int m = 0; m S # 11) 1'den 100'e kadar tamsayılar içeren bir dizide eksik bir sayı nasıl aranır?
Cevap: 1'den 100'e kadar tamsayılar içeren bir dizide eksik bir sayıyı aramak için aşağıdaki adımlar takip edilir:
- 1'den 100'e kadar sayıları olan bir tamsayı dizisi alın.
- Sayıların toplamını hesaplayın, toplam = l * (l + 1) / 2 olacaktır, burada l tam sayıların sayısıdır.
- Eksik öğeyi toplam sayı toplamından çıkarma işlemini gerçekleştirin.
S # 12) Bir tamsayı dizisindeki eşleşen elemanlar nasıl elde edilir?
Cevap: Bir tamsayı dizisindeki eşleşen elemanları elde etmek için aşağıdaki adımlar takip edilir:
- İki döngü oluşturun.
- İlk döngüde, öğeleri birer birer toplayın ve seçilen öğenin örnek sayısını toplayın.
Kod pasajı:
for (m = 0; m S # 13) Bir tamsayı dizisindeki tekrarlanan elemanlar nasıl silinir?
Cevap: Bir tamsayı dizisindeki tekrarlanan elemanları silmek için aşağıdaki adımlar takip edilir:
açık kaynaklı bir dbms:
- Daha önce mevcut olan tüm öğeleri seçecek bir hashmap oluşturun.
- Dizide döngü yapın ve öğenin hash haritasında zaten mevcut olup olmadığını doğrulayın
- Sonuç doğruysa dizi geçişine devam edilir, aksi takdirde öğe konsolda yazdırılır.
Kod pasajı:
HashMap m = new HashMap(); for (int j = 0; j S # 14) Bir dizinin sıralanmamış en büyük ve en küçük elemanını belirleyin.
Cevap: Bir dizinin en büyük ve en küçük elemanını belirlemek için aşağıdaki adımların izlenmesi gerekir:
- Diziyi çaprazlayın ve şimdiye kadar bulunan maksimum elemanı izleyin, dizinin sınırına gelene kadar en büyük eleman elde edilir.
- Diziyi çaprazlayın ve şimdiye kadar bulunan minimum elemanı izleyin, dizinin sınırına gelene kadar en küçük eleman elde edilir.
S # 15) Kabarcık sıralama algoritmasını açıklayın.
Cevap: Kabarcık sıralama algoritması aşağıdaki adımları içerir:
- İlk öğeden başlayın, ardından dizideki aşağıdaki öğeyle bir karşılaştırma yapın
- Mevcut öğe, dizinin aşağıdaki öğesinden daha büyükse, konumlarını değiştirin.
- Mevcut öğe, dizinin sonraki öğesinden küçükse, sonraki öğeye geçin ve 1. adımı tekrarlayın.
Kod pasajı:
for(k = 0; k S # 16) Ekleme sıralama algoritmasını uygulayın.
Cevap: Ekleme sıralaması uygulaması.
Kod pasajı:
for (m = 1; m 0 && arry(n - 1) > arry(n)) { k = arry(n); arry(n) = arry(n - 1); arry(n - 1) = k; n--; } }
S # 17) Bir dizinin ikinci en büyük elemanını belirleyin.
Cevap: Bir dizinin ikinci en büyük elemanı aşağıdaki adımlarla hesaplanabilir:
- En büyük öğeyi dizinin ilk öğesi ve ikinci en büyük öğeyi dizinin ikinci öğesi olarak belirtin.
- Diziyi dolaşmak için döngü boyunca yineleyin.
- EĞER arry (i) en büyük elemandan büyükse SONRA
İkinci unsur? en büyük eleman
En büyük eleman? Arry (i)
EĞER ikinci eleman arry'den küçükse (i) SONRA
İkinci unsur? Arry (i)
Kod pasajı:
if(arry(0) > arry(1)) { l = arry(0); s = arry(1); } else { l = arry(1); s = arry(0); } for(i = 2; i S # 18) Bir dizinin tersine çevrilmesini açıklayın.
Cevap: Dizi tersine çevirme işlemi aşağıdaki şekillerde gerçekleştirilir:
- Öğeleri olan bir dizi alın.
- Şimdi birinci elemanın konumunu son elemanla ve benzer şekilde ikinci elemanın sondan bir önceki elemanla değiştirin.
- Bu, tüm dizi tersine çevrilene kadar devam edecektir.
Kod pasajı:
for (t = 0; t S # 19) Küçük harfli bir dizedeki özel karakterler nasıl kaldırılır?
Cevap: Bir dizedeki özel karakterler, Java'daki replaceAll işlevi kullanılarak kaldırılabilir.
Kod pasajı:
string str = “Testing@” str.replaceAll(“(^a-z0-9)”,””)
Bu çözümde düzenli bir ifade kullanılır.
S # 20) Üçüncü bir değişken kullanmayarak iki dizgeyi nasıl değiştirebilirim?
Cevap: İki dizge üçüncü değişkenin yardımı olmadan aşağıdaki adımlarla değiştirilir:
(ben) İki i, j dizgisi alın ve bunları ekleyin ve ardından ilk dizede saklayın.
(ii) Alt dize yöntemini kullanarak dizeyi ayıklayın:
j = substring(0,i.length()-j.length())
(iii) J dizesini i dizesinde saklayın
i= subsrtirng(j.length)
Kod pasajı:
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);
S # 21) Bağlantılı bir listenin ortasına nasıl geçilir?
Cevap: Bağlantılı bir listenin ortasına geçmek için aşağıdaki adımlar takip edilir:
- Bağlantılı liste başlığında başlatılan birinci ve ikinci iki işaretçi bildirin.
- İlk bağlantılı listeyi iki düğüm ve ikincisi her döngüde bir düğüm artırın.
- İlk düğüm listenin sonuna ulaşırken, ikinci düğüm ortayı gösterecektir.
Kod pasajı:
first = second = head; while(first !=null) { first = first.next; if(first != null && first.next != null) { second = second.next; first = first.next; } } return second; }
S # 22) Bağlantılı bir listeyi tersine çevirme sürecini uygulayın.
Cevap: Bağlantılı bir liste aşağıdaki adımlarla tersine çevrilebilir:
- Öncesinde, mevcutta ve sonrasında üç düğüm bildirin.
- Mevcut düğümde iken, öncekiler boş olacaktır.
- Present.next'in listeyi tersine çevirmesine izin verin.
- Her döngüde, şimdiki zaman ve önceki 1 artırılır.
Kod pasajı:
sql sorgu mülakat soruları ve cevapları pdf
Node preceding=null; Node following while(present!=null) { following=present.next; present.next=preceding; preceding=present; present=following; } return preceding; }
S # 23) Sıralanmamış bir bağlantılı listeden eşleşen öğeleri silme işlemi nedir?
Cevap: Eşleşen elemanları sıralanmamış bir bağlantılı listeden silmek için aşağıdaki adımlar takip edilir:
- Bağlantılı listenin başından sonuna kadar seyahat edin.
- Bağlı listedeki her değer için, karma tabloda zaten mevcut olup olmadığını doğrulayın.
- Sonuç doğruysa, öğe karma tablosuna eklenmez.
Kod pasajı:
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; } }
S # 24) Bağlantılı bir listenin uzunluğu nasıl alınır?
Cevap: Bağlantılı bir listenin uzunluğunu elde etmek için aşağıdaki adımlar izlenir:
- 0 değeriyle bir sayaç başlatın ve düğümü baş olarak gösterin.
- Mevcut düğüm boş olmayana kadar şunları gerçekleştirin:
- mevcut = mevcut -> sonraki
- sayaç = sayaç + 1
- Sayaç değeri döndürülür.
Kod pasajı:
{ Node present = head; int c = 0; while (present != null) { c = c + 1; present = present.next; } return c; }
S # 25) Bağlantılı bir listede belirli bir değer nasıl aranır?
Cevap: Bağlı bir listede belirli bir değeri aramak için aşağıdaki adımlar izlenir:
- Mevcut düğümü kafa olarak bildirin.
- Mevcut düğüm boş olmayana kadar şunları gerçekleştirin:
- mevcut -> değer, doğru dönüşü için aranan değere eşittir.
- mevcut = mevcut -> sonraki.
- Bulunmazsa yanlış döndürülür.
Kod pasajı:
Node present = head; while (present != null) { if (present.value == value) return true; present = present.next; } return false; }
S # 26) Bir sayının asal olup olmadığı nasıl doğrulanır?
Cevap: Bir sayının asal olup olmadığını doğrulamak için aşağıdaki adımlar izlenir:
- 2 (k) değerinden (sayı / 2) değerine kadar bir döngü başlatın
- Sayı k ile tam olarak bölünebiliyorsa, bu durumda sayı asal değildir.
- Sayı, 1 dışında ve kendisi dışında tam olarak bölünemezse, sayı asaldır.
Kod pasajı:
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');
S # 27) Bağlantılı bir listenin üçüncü düğümü nasıl alınır?
Cevap: Bağlantılı listenin üçüncü düğümüne ulaşmak için aşağıdaki adımlar takip edilir:
- 0 değeriyle bir sayaç başlatın.
- Bağlantılı listeyi yineleyin ve şu adımları uygulayın:
- Sayacın değeri 3 ise, mevcut düğüm döndürülür.
- Sayaç 1 artar.
- Şimdiyi, şimdinin sonrakini ima edecek şekilde değiştirin.
Kod pasajı:
Node present = head; int c = 0; while (c != null) { if (c == 3) return present.val; c = c+1; present = present.next; }
S # 28) İlk beş Fibonacci sayısını hesaplayın.
Cevap: 0 ve 1 ilk iki Fibonacci numarasıdır ve 0 ve 1'den sonraki tüm sayılar önceki iki sayının toplamıdır.
Kod pasajı:
int num1=0, num2=1,t; for ( int k = 0; k<5,k++) { System.out.println(num1); t = num1 + num2; num1 = num2; num2 = t; }
S # 29) Bir sayı nasıl tersine çevrilir?
Cevap: Bir sayının tersine çevrilmesi aşağıdaki adımlarla gerçekleştirilir:
- Sayının en sağındaki rakamı çıkarın.
- Basamağı yeni ters sayı ile özetleyin.
- 10 ile çarpma yapın.
- Sayıyı 10'a bölün.
S # 30) Bir sayının faktörlerini belirleyin.
Cevap: Bir sayının faktörleri aşağıdaki kod parçacığı ile ifade edilir:
int no = 75; for(int j = 1; j <= no; j++) { if (no % j == 0) { System.out.print(j); }
Sonuç
Temel kodlama mülakat soruları ile ilgili sorularınıza verilen yanıtların çoğunun açıklığa kavuşturulduğunu umuyoruz.
Tartıştığımız kodlama uygulamalarının çoğu Java'dadır, ancak dilin farkında olmasanız bile, soruların çoğu için burada verilen algoritmanın adımları veya ayrıntıları bir görüşmeye hazırlanmanıza yardımcı olacaktır.
Temel programlama, mantık, veri yapıları üzerinde sıkı çalışın, sakin olun ve bu programlama mülakat sorularını uygulayın.
Yaklaşan röportajınız için en iyisi !!
Önerilen Kaynaklar
- Mülakat Soruları ve Cevapları
- ETL Test Mülakat Soruları ve Cevapları
- Bazı Zor Manuel Test Soruları ve Cevapları
- 30 En Popüler HTML Mülakat Soruları ve Cevapları (2021 LİSTESİ)
- En Popüler 30+ Salatalık Röportaj Soruları ve Cevapları
- En İyi 30 SAS Mülakat Soruları ve Cevapları
- İlk 30 DBMS Mülakat Soruları ve Cevapları
- En İyi 30 Güvenlik Testi Görüşme Soruları ve Cevapları