Hai, Habrovsk. Menjelang dimulainya kursus Java QA Engineer, kami berbagi dengan Anda kelanjutan materi ini
.

Pada wawancara pertama saya, saya tidak tahu ini. Tetapi para pengembang tidak hanya mengawasi saya - mereka mengharapkannya. Mereka mengharapkan saya untuk bertindak sesuai dengan algoritma berikut:
Perbaiki tugas- Tanyakan: "Apa yang Anda maksud dengan kata palindrome?"
- Ini menjawab pertanyaan: apakah kandidat akan mulai memecahkan masalah dengan segera - bahkan tanpa menyadari bahwa kondisi teknisnya tidak sepenuhnya jelas? Atau pikirkan sedikit dan jelaskan persyaratannya? ”
"Maksud kami urutan yang dibaca sama dari kiri ke kanan dan dari kanan ke kiri. Keputusan Anda harus peka huruf besar-kecil: r kecil tidak sama dengan r besar. "
Mulailah dengan contoh- Tanyakan: “Kata-kata“ penghasilan ”dan“ pondok ”diberikan sebagai contoh. Bagaimana dengan frasa seperti "Apakah mawar itu jatuh di atas kaki Azora?" Bagaimana dengan string kosong atau string karakter tunggal?
- Ini menjawab pertanyaan: akankah kandidat mempertimbangkan jumlah kasus perbatasan yang cukup? Seberapa akurat dan penuh perhatian akan hal itu?

Sebelum memulai deskripsi kode, biasakan pewawancara secara singkat dengan algoritme
Bagaimana kandidat mendekati solusi dari masalah? Apakah dia mengutarakan pikirannya dengan keras sehingga pewawancara mendengarnya?Misalnya,
string s = "alla"
.
Kita bisa menggunakan metode helper untuk Java String, charAt (int i). Masukkan indeks baris ke dalam metode, dan itu akan menampilkan karakter pada indeks:
s.charAt(0) == 'a' s.charAt(1) == 'l' s.charAt(2) == 'l' s.charAt(3) == 'a'
Untuk mengetahui panjang string, Anda dapat menggunakan metode
length()
:
s.length == 4
Untuk mengetahui karakter terakhir, Anda dapat menggunakan:
int len = s.length s.charAt(len - 1)
Kami mulai menghitung dari 0, jadi karakter terakhir adalah "panjang minus 1".
Mari kita sebut karakter pertama "pertama" dan yang terakhir "terakhir".
- Jika karakter pertama s.charAt (pertama) tidak cocok dengan s.charAt (terakhir), maka ini bukan palindrome. Output salah.
- Jika karakter pertama s.charAt (pertama) cocok dengan s.charAt (terakhir), kami melanjutkan untuk mengevaluasi set karakter berikutnya, menggeser satu karakter dari "pertama" dan dari "terakhir". Jika semuanya cocok, cetak benar.
- Setelah memeriksa algoritme dengan pewawancara, Anda dapat mulai menulis kode:
public boolean isPalindrome(String s) { int first = 0; int last = s.length() - 1; while (first < last) { if (s.charAt(first) != s.charAt(last)) { return false; } first++; last--; } return true; }
Debugging dan pengujian
- Ambil kasus uji awal dan coba bayangkan: apa yang terjadi jika Anda memasukkannya ke dalam kode.
- Pewawancara memeriksa perhatian Anda saat debugging. ( Apakah Anda melihat kesalahan dalam kode asli tanpa diminta dari luar? ).
- Pewawancara akan memberikan petunjuk jika Anda berhasil membuat kesan yang baik pada mereka. ( Jika kita memberikan petunjuk kepada kandidat, apakah dia akan menggunakannya? Apakah dia siap mendengarkan pendapat orang lain? Bisakah dia bekerja dengan orang-orang di posisi yang lebih tinggi? ).
Tunjukkan kode Anda kepada orang lain dan kumpulkan umpan balik mereka
Saya menunjukkan solusi saya untuk masalah palindrome ke teman-pengembang saya. Dia meringis, “Mengapa Anda menggunakan variabel pertama dan terakhir? Dan mengapa Anda menggunakan loop loop jika Anda bisa bertahan dengan for loop? Semuanya bisa dibuat lebih pendek, lebih elegan dan lebih cepat:
public boolean isPalindrome(String s) { int len = s.length; for (int i = 0; i < len / 2; i++) { if ( s.charAt(i) != s.charAt(len - 1 - i)) { return false; } } return true; }
Apa selanjutnya
Menguasai bahasa pemrograman dalam semalam tidak akan berhasil. Karena itu, lebih baik mengikuti algoritma ini:
- Temukan tugas pemrograman dasar online.
- Cobalah untuk menyelesaikannya dengan kertas dan pena.
- Jika Anda tidak dapat menyelesaikannya, lihat dokumentasi resmi bahasa pemrograman dan lihat metode bawaan apa yang dapat membantu Anda.
- Rumuskan keputusan Anda sendiri sebelum mencari orang lain. Jika Anda sendiri akan mengumpulkan informasi dan mempelajarinya, ada kemungkinan bahwa informasi ini akan menetap secara permanen di kepala Anda.
- Jangan mengatur sesi menjejalkan. Jadi, Anda hanya menyimpan informasi dalam memori jangka pendek.
- Berlatih lari singkat, 15 menit sehari. Jadi informasi itu akan pindah ke memori jangka panjang, dan Anda dapat mengingatnya bahkan dengan tekanan yang luar biasa selama wawancara.
- Jangan biarkan diri Anda terkena semua siksaan ini hanya untuk lulus ujian di papan tulis. Bidik lebih tinggi! Tentukan sendiri tugas Anda untuk menjadi programmer yang lebih profesional!