8 Pertanyaan & Jawaban Wawancara Coding Penting Teratas 2022 [Untuk Freshers & Berpengalaman]
Diterbitkan: 2021-08-25Pondasi yang baik dari struktur data seperti array, pohon biner, tabel hash dan daftar tertaut sangat penting. Anda harus mengetahui algoritma penting, metode dan menguasai bahasa pemrograman seperti Java, terutama jika Anda melamar pekerjaan pemrograman. Anda pasti dapat mempelajari jawaban atas pertanyaan wawancara pengkodean yang penting, tetapi mempraktikkan solusi secara ekstensif sendiri sangat disarankan.
8 Pertanyaan Wawancara Coding Terbaik dan Jawabannya
Mari kita lihat beberapa pertanyaan pengkodean paling penting yang ditanyakan dalam wawancara yang diselenggarakan oleh perusahaan besar seperti Microsoft, IBM, Google, dll.
1. Bagaimana Anda bisa menemukan karakter pertama yang tidak berulang dalam sebuah kata?
Untuk menjawab pertanyaan ini, Anda harus terlebih dahulu memahami apa yang harus dilakukan untuk mempromosikan fungsi ini. Sebuah fungsi perlu ditulis yang menerima string dan mengembalikan karakter pertama yang tidak berulang.
Misalnya, dalam kata 'passage', 'p' adalah karakter pertama yang tidak berulang atau dalam kata, 'turtle', 'u' adalah karakter pertama yang tidak berulang. Jadi, bagaimana kita memecahkan masalah ini? Kita dapat membuat tabel untuk menyimpan pengulangan untuk semua karakter dan kemudian memilih entri pertama yang tidak berulang.
Untuk menulis kode yang akan mengembalikan huruf pertama yang tidak berulang, kita dapat menggunakan LinkedHashMap untuk menyimpan jumlah karakter. HashMap ini mengikuti urutan penyisipan dan karakter diinisialisasi pada posisi yang sama seperti pada string. String yang dipindai harus diulang menggunakan LinkedHashMap untuk memilih entri yang diperlukan dengan nilai 1.

Cara lain untuk mendekati masalah ini adalah dengan menggunakan firstNonRepeatingChar(String Word). Ini memungkinkan karakter yang tidak berulang yang muncul pertama kali untuk diidentifikasi dalam satu lintasan. Pendekatan ini menggunakan dua penyimpanan untuk menggantikan interaksi. Metode ini menyimpan karakter yang tidak berulang dan berulang secara terpisah dan ketika iterasi berakhir, karakter yang diperlukan adalah elemen pertama dalam daftar.
2. Bagaimana Anda bisa menghapus duplikat dari array?
Pertama, Anda harus menggunakan LinkedHashSet (Set Interface) untuk mempertahankan urutan penyisipan elemen asli ke dalam set. Anda harus menggunakan fungsi loop atau rekursi untuk menyelesaikan pertanyaan wawancara pengkodean semacam ini.
Faktor utama yang harus kita ingat ketika berhadapan dengan array bukanlah elemen yang memiliki duplikat. Masalah utama di sini adalah menghapus duplikat sebagai gantinya. Array adalah struktur data statis yang panjangnya tetap, sehingga tidak mungkin diubah. Jadi, untuk menghapus elemen dari array, Anda perlu membuat array baru dan menduplikasi konten ke dalam array baru ini.
Pertama, Anda harus mengubah array menjadi Arraylists dan kemudian membuat LinkedHashSets dari ArrayLists ini. Jika larik masukan berisi jumlah duplikat yang lebih banyak maka dapat menghasilkan beberapa larik sementara, sehingga meningkatkan biaya mengimpor konten. Pembatasan ini memaksa kami untuk mendekati masalah ini dengan cara yang membutuhkan lebih sedikit memori dan daya pemrosesan.
Kita harus menghapus duplikatnya tetapi tidak menyalinnya ke dalam array yang dihasilkan, sehingga tidak menghapus duplikat seluruhnya tetapi hanya menggantinya dengan 0 sebagai nilai default.
3. Bagaimana cara memeriksa apakah suatu bilangan adalah bilangan prima?
Ini adalah salah satu pertanyaan wawancara pengkodean paling umum yang melibatkan mencari tahu apakah bilangan yang diberikan adalah bilangan prima atau bukan. Program semacam ini adalah dasar dari pemikiran algoritmik karena kita harus menemukan solusi yang didasarkan pada fakta bahwa bilangan prima adalah semua bilangan asli yang tidak dapat dibagi dengan bilangan positif selain 1.
Kita harus menulis kode untuk membuat loop yang memeriksa setiap angka mulai dari 1 hingga angka target untuk melihat apakah angka target habis dibagi dengan angka positif lain selain angka itu sendiri atau 1.
Fungsi ini akan membawa kita ke solusi. Saat memeriksa nomor yang sangat besar, maka kita cukup memeriksa sampai akar kuadrat dari N, N menjadi nomor target. Tidak perlu memeriksa hingga N dalam kasus akar kuadrat yang memenuhi syarat.
Jika bilangan tersebut tidak habis dibagi 2, tidak perlu memeriksa apakah bilangan tersebut habis dibagi oleh bilangan genap lainnya, sehingga mengurangi waktu yang diperlukan untuk menemukan penyelesaiannya. Ini adalah versi solusi yang dioptimalkan di mana menganalisis nomor sebelum menulis solusi sangat berguna.
4. Bagaimana cara memeriksa apakah string hanya berisi angka?
Jika Anda ingin menulis ekspresi reguler untuk memeriksa apakah string hanya angka atau jika mengandung karakter non-digit, Anda harus terlebih dahulu terbiasa menggunakan set karakter dalam ekspresi reguler Java. Bahasa pemrograman seperti Java mendukung ekspresi reguler dengan bantuan kelas java.util.regex.Matcher dan java.util.regex.Pattern. Java.util.regex adalah paket khusus untuk tujuan ini.
Untuk memvalidasi keberadaan angka hanya menggunakan ekspresi reguler, kita dapat menggunakan kode untuk menganalisis apakah string berisi bilangan bulat mentah. Kami akan memeriksa apakah string hanya berisi angka dalam 0 – 9. Bahkan jika string berisi digit tetapi juga karakter lain, itu bukan string numerik sederhana. Ekspresi reguler hanya memeriksa bilangan bulat dan tidak mempertimbangkan karakter titik (.), sehingga, membuat angka desimal dan titik mengambang gagal dalam pengujian.
5. Bagaimana Anda bisa membalikkan kata-kata dalam kalimat target tanpa bantuan metode perpustakaan?
Ini juga salah satu pertanyaan wawancara pengkodean yang sangat umum. Pertama, kita harus memahami persyaratan dan bagaimana mengisi kesenjangan dalam persyaratan ini. Ketika dihadapkan dengan pertanyaan seperti ini, pertama-tama kita harus berkonsentrasi untuk mengajukan pertanyaan yang tepat. String tidak lain adalah kalimat dari karakter yang ditentukan yang mungkin berisi satu kata atau beberapa kata.
Sebuah kalimat mungkin juga kosong. Misalnya, jika kita diberi kalimat, 'Memrogram itu menyenangkan.', kita harus membalikkannya menjadi, 'Menyenangkan adalah memprogram.' efektif. Kita harus menggunakan ekspresi reguler di Java untuk membagi string yang diberikan ke dalam spasi diikuti dengan menerapkan metode reverse() dari kelas utilitas Collections.
Setelah Anda dapat membagi string menggunakan regex'\\s', sebuah array kata akan dikembalikan sebagai hasilnya. Ini juga menangani kata-kata yang dipisahkan menggunakan banyak spasi. Segera setelah array dikembalikan, Anda kemudian dapat memilih untuk membuat ArrayLists dari array ini diikuti dengan menggunakan metode Collections.reverse(). Ini membalikkan ArrayLists dan setiap kata akan diinisialisasi ulang dalam urutan terbalik.

Sekarang, yang tersisa hanyalah menggunakan StringBuilder untuk menggabungkan beberapa string melalui iterasi ArrayList. Seseorang harus memastikan bahwa ukuran ditentukan karena pengubahan ukuran StringBuilder adalah proses yang mahal dalam hal kekuatan pemrosesan dan memori. Mengubah ukuran akhirnya membuat array baru dari menyalin konten dari array yang lebih lama.
6. Bagaimana Anda bisa mengganti atau menghapus karakter dari string?
Misalkan kita memiliki string, 'Woocommerce', dan kita ingin mengganti huruf 'r' dengan 'n', ada beberapa metode untuk mencapai ini. Kelas string di Java menyediakan beberapa pendekatan untuk mengganti karakter di dalam string menggunakan CharSequence dan substring.
Anda dapat dengan mudah memanggil metode ganti di dalam string yang pada akhirnya akan menggantikan karakter target dan mengembalikan karakter yang diinginkan sebagai hasilnya. String tidak dapat diubah dalam bahasa pemrograman seperti Java.
Jadi, setiap kali operasi ini seperti penghapusan atau penggantian dilakukan pada string, objek string baru dihasilkan secara default. Ada 4 metode kelebihan beban untuk mengganti string menggunakan Java:
- ganti (char oldChar, char newChar)
- replaceAll(String regex, Penggantian string)
- ganti (target CharSequence, penggantian CharSequence)
- replaceFirst(String regex, Penggantian string)
CharSequence adalah salah satu antarmuka super untuk string, StringBuilder dan StringBuffer, yang memungkinkan kita untuk melewatkan salah satu objek dari ini sebagai argumen untuk metode penggantian ini. replaceAll() akhirnya mengganti setiap kecocokan dengan string pengganti sementara replaceFirst() hanya menggantikan kecocokan pertama.
Secara keseluruhan, semua ini adalah metodologi yang kuat yang menerima ekspresi reguler. Kelas Java.lang.String memungkinkan semua metode kelebihan beban ini yang dapat dengan mudah mengganti karakter tunggal atau substring di Java.
Sangat disarankan untuk menggunakan replaceAll() karena ini menggantikan setiap kemunculan karakter yang cocok. Mengikuti pendekatan ini memungkinkan kita untuk mengharapkan pola ekspresi reguler, sehingga mengumpulkan lebih banyak kekuatan. Metode ini juga dapat mengganti setiap koma dengan pipa untuk mengonversi file yang dipisahkan koma menjadi string yang dibatasi tumpukan.
Namun, jika seseorang hanya ingin mengganti satu karakter, dia bisa menggunakan metode replace() yang mempertimbangkan karakter lama dan baru.
Baca: Pertanyaan & Jawaban Wawancara Java
7. Bagaimana Anda bisa menambahkan teks ke file dalam bahasa pemrograman seperti Java?
Menambahkan sangat berbeda dibandingkan dengan membuat file baru dan menulis data ke dalam file baru. Dalam kasus penambahan, file sudah ada dan kita hanya perlu menambahkan teks di akhir file. Ini mirip dengan file log karena terus diperbarui dengan sistem.
File log adalah contoh sempurna untuk menambahkan teks karena aplikasi terus menambahkan detail log ke dalam file ini. Kerangka kerja logging tidak diperlukan untuk masalah ini, tetapi Anda harus tahu cara menambahkan teks ke dalam file yang ada. Untuk mengatasi masalah ini, Anda harus mengetahui kelas praktis untuk menulis file karakter.
Kelas memiliki konstruktor yang mengasumsikan penerimaan byte-buffer default dan pengkodean karakter. Jika Anda ingin menentukan nilainya sendiri, Anda cukup membuat OutputStreamWriter menggunakan FileOutputStream. Ketersediaan file tergantung pada platform yang mendasarinya, yang menentukan apakah file tersebut dapat dibuat atau tidak.
Beberapa platform memungkinkan file diinisialisasi untuk menulis fungsi menggunakan satu FileWrite atau beberapa objek penulisan file. Namun, konstruktor dari kelas ini akan gagal setelah file yang terlibat sudah diinisialisasi. FileWriter digunakan untuk menulis aliran karakter dan FileOutputStream dapat menulis aliran byte mentah.
Pelajari Kursus Pengembangan Perangkat Lunak online dari Universitas top dunia. Dapatkan Program PG Eksekutif, Program Sertifikat Tingkat Lanjut, atau Program Magister untuk mempercepat karier Anda.
8. Bagaimana cara menemukan bilangan terbesar atau terkecil dalam array bilangan bulat?
Untuk solusi ini, kita harus mengkodekan fungsi atau metode yang dapat menemukan bilangan terbesar atau terkecil dari array yang merupakan bilangan bulat penuh. Pertama-tama kita harus membuat file sumber di Java menggunakan nama MaximumMinimumArrayDemo.java dan menyalin kode tertulis di sini untuk kompilasi dan eksekusi.

Kita dapat menggunakan dua variabel yang dapat kita sebut sebagai 'terbesar' dan 'terkecil' untuk menyimpan nilai maksimum dan minimum masing-masing dari array. Angka terkecil dapat diinisialisasi menggunakan integer.MIN_VALUE dan yang terbesar dapat diinisialisasi menggunakan integer.MAX_VALUE.
Dengan setiap iterasi dari loop yang telah Anda mulai, Anda dapat membandingkan angka saat ini dengan 'terbesar' dan 'terkecil' dan memperbaruinya sesuai dengan itu. Array tidak menimpa metode toString di Java, jadi Anda bisa menggunakan Arrays.toString() untuk mencetak konten array target.
Anda dapat menggunakan metode statis ini untuk langsung memanggil fungsi utama. Anda kemudian harus meneruskan array acak melalui metode ini untuk memeriksa apakah nilai maksimum dan minimum telah dikembalikan secara akurat. Anda juga dapat memilih untuk mengotomatiskan pengujian ini melalui pengujian Unit di IDE Anda.
Checkout: 4 Keterampilan Komputer Teratas untuk Dimasukkan ke dalam Resume Anda
Kesimpulan
Kursus yang berfokus pada pemrograman tidak hanya bagus untuk memecahkan masalah tetapi juga meningkatkan peluang Anda untuk dipilih saat melamar pekerjaan. Jika Anda ingin mempelajari lebih lanjut tentang pemrograman Java dan masalah pengkodean lebih lanjut, Anda dapat mendaftarkan diri ke kursus komprehensif seperti Master of Science di bidang Ilmu Komputer upGrad atau Kursus Pengembangan Full Stack .
