Program Java untuk Memeriksa Apakah Dua String adalah Anagram | Program Anagram

Diterbitkan: 2021-07-23

Daftar isi

Fakta yang kurang diketahui tentang Java

Menjadi salah satu bahasa pemrograman yang paling tahan lama, Java digunakan di seluruh dunia karena fitur-fiturnya yang kuat dan fleksibel. Stabilitas dan fleksibilitas Java telah menjadikannya salah satu bahasa pemrograman yang paling dicari. Namun, ada beberapa fakta yang kurang diketahui tentang bahasa pemrograman yang aman ini. Mari kita mengenal beberapa dari mereka.

  • Ek adalah nama asli Jawa.
  • Anda bisa mendapatkan banyak sambil mempelajari bahasa pemrograman ini.
  • Java adalah bahasa pemrograman terpadat kedua di dunia, yang pertama adalah C.
  • Sekitar 3 miliar perangkat di seluruh dunia bekerja di Java.
  • Java adalah bahasa pemrograman yang peka huruf besar/kecil. yaitu, "Final" dan "final" tidak sama dalam kode Java. Baca lebih lanjut tentang mengapa java sangat populer di kalangan pengembang.

Gambaran Umum Anagram

Jika sebuah string diubah menjadi string lain dengan mengatur ulang karakternya, maka kedua string tersebut dikatakan anagram satu sama lain. Namun, jumlah karakter pada string awal dan string yang diperoleh harus sama. Untuk memahami konsep anagram dengan cara yang lebih baik, mari kita perhatikan dua string, 'dewa' dan 'anjing'.

String 'god' dan 'dog' adalah anagram satu sama lain karena string sebelumnya dapat diatur ulang untuk mendapatkan string terakhir hanya dengan menukar posisi karakter 'd' dan 'g'. Untuk dua string input, frekuensi setiap karakter dihitung untuk memeriksa apakah string adalah anagram satu sama lain atau tidak. Jadi, anagram string dapat didefinisikan sebagai string lain yang memiliki karakter yang sama dengan frekuensi yang sama seperti string input dalam urutan apa pun.

Algoritma untuk Program Anagram di Java

Langkah 1: Tentukan dua string input.

Langkah 2: Panjang setiap string ditentukan. String input bukan anagram satu sama lain jika memiliki panjang string yang berbeda.

Langkah 3: Jika string memiliki panjang yang sama, karakter string diubah menjadi huruf kecil untuk memastikan perbandingan lebih mudah.

Langkah 4: Karakter string diurutkan berdasarkan fungsi bawaan atau diubah menjadi array karakter dan kemudian diurutkan.

Langkah 5: Array karakter yang diurutkan diperiksa kesetaraannya.

Implementasi program Anagram di Java

Ada beberapa solusi untuk mengimplementasikan kode untuk menemukan apakah dua string adalah anagram atau bukan. Untuk setiap solusi yang dibahas di bagian berikutnya, Langkah 2 dari algoritma yang dijelaskan di atas membentuk dasar dan memfasilitasi keluar awal jika panjang string tidak cocok. Di bagian selanjutnya, mari kita pahami lebih lanjut tentang berbagai jenis penulisan kode untuk logika anagram.

Pendekatan Penyortiran

Karakter dari setiap string input dapat diurutkan untuk mendapatkan dua array karakter yang dinormalisasi. Jika array yang dinormalisasi dari kedua string input adalah sama, maka string tersebut dianggap anagram satu sama lain dan sebaliknya.

Pemahaman dan implementasi kode ini lebih mudah. Kompleksitas waktu dari solusi di atas adalah O(n log n) dan ruang tambahan diperlukan untuk menyimpan array karakter dari string input.

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.

Menghitung Pendekatan untuk Menerapkan Logika Anagram

Dalam pendekatan ini, jumlah keberadaan setiap karakter dalam dua string input diukur. Jika frekuensi setiap karakter di kedua string identik, string adalah anagram satu sama lain.

Mari kita membangun satu histogram untuk menghemat beberapa memori. Dalam string pertama, jumlah setiap karakter bertambah, sedangkan jumlah dikurangi untuk yang kedua. Jika hasil akhir menyeimbangkan semuanya menjadi nol, maka string adalah anagram.

Solusi ini dieksekusi lebih cepat dari solusi sebelumnya dan kompleksitas waktunya adalah O(n). Namun, ruang tambahan diperlukan untuk menghitung karakter. Solusi ini praktis hanya efektif untuk string dengan rentang karakter yang lebih kecil. Fakta lain tentang solusi ini adalah ia menggunakan sejumlah fungsi Java bawaan dan dengan demikian menambah panjang kode.

Lihat: Ide & Topik Proyek Java

Tentukan Anagram dengan memeriksa dengan MultiSet

Penggunaan MultiSet, koleksi yang membantu perbandingan urutan-independen dengan elemen identik, menyederhanakan proses penghitungan dan perbandingan dalam solusi ini.

Setiap string input awalnya diubah menjadi MultiSet karakter dan kemudian diperiksa paritasnya.

Kompleksitas waktu dari solusi ini adalah O(n). Ini mirip dengan pendekatan penghitungan untuk menentukan anagram. Namun, ini dapat bekerja secara efisien untuk string dengan panjang yang lebih besar. Juga, pengkodean melibatkan lebih banyak fungsi Java Library.

Pendekatan Berbasis Surat untuk menentukan Anagram

Semua solusi yang dibahas sejauh ini mempertimbangkan karakter tanda baca juga sebagai bagian dari string. Selain itu, solusi tersebut peka huruf besar/kecil. Pendekatan berbasis huruf mengimplementasikan kode untuk memeriksa string input berdasarkan definisi linguistik anagram. Dalam pendekatan ini, spasi putih dan tanda baca tidak dianggap sebagai bagian dari string input.

Langkah awal saat menerapkan solusi berbasis huruf adalah penghapusan karakter yang tidak diinginkan dan konversi semua karakter yang valid menjadi huruf kecil. Setelah langkah ini, salah satu implementasi yang dibahas di atas dapat digunakan untuk memeriksa apakah string adalah anagram atau bukan.

Jika Anda tertarik untuk mempelajari lebih lanjut tentang Java, pengembangan perangkat lunak full-stack, lihat Program PG Eksekutif upGrad & IIIT-B dalam Pengembangan Perangkat Lunak – Spesialisasi dalam Pengembangan Full Stack yang dirancang untuk profesional yang bekerja dan menawarkan 500+ jam pelatihan yang ketat , 9+ proyek, dan tugas, status Alumni IIIT-B, proyek batu penjuru praktis & bantuan pekerjaan dengan perusahaan-perusahaan top.

Dapatkan Pekerjaan Impian Anda

Mendaftar untuk Program PG Eksekutif dalam Pengembangan Perangkat Lunak dari IIIT-B