Diberi string, hapus karakter duplikat yang berdekatan darinya. Dengan kata lain, hapus semua karakter yang sama berturut-turut kecuali satu Show Sebagai contoh, Memasukkan. AABBBCDDD
Idenya adalah untuk mengulang string, dan untuk setiap karakter, bandingkan dengan karakter sebelumnya. Jika karakter saat ini berbeda dari karakter sebelumnya, jadikan itu bagian dari string yang dihasilkan; . Kompleksitas waktu dari pendekatan ini adalah O(n) , dengan Berikut ini adalah implementasi ide C, Java, dan Python C1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 #include #include #include
// Berfungsi untuk menghapus karakter duplikat yang berdekatan dari sebuah string batal hapusDuplikat(char s[]) { int n = strlen(s); char sebelumnya = '\0'; int k = 0;
// mengulang melalui string untuk (int i = 0; i < n; i++) { // jika karakter saat ini berbeda dengan karakter sebelumnya jika (sebelumnya . = s[i]) { // menyetel karakter yang berbeda pada indeks `k` dan menambahkannya s[k++] = s[i]; }
// perbarui karakter sebelumnya ke karakter saat ini untuk iterasi loop berikutnya sebelumnya = s[i]; }
// null mengakhiri string yang dihasilkan s[k] = '\0'; }
int utama(batal) { char s[] = "AAABBCDDD";
hapusDuplikat(s); printf("%s", s);
kembalikan 0; } Unduh Jalankan Kode Keluaran C++1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include #include menggunakan namespace std;
// Berfungsi untuk menghapus karakter duplikat yang berdekatan dari sebuah string batal hapusDuplikat(string &s) { char sebelumnya; untuk (otomatis itu = s.mulai(); itu . = != s. akhir(); itu++) { jika (sebelumnya == *it) { s. hapus(ini); itu--; } selain itu { sebelumnya = *itu; } } }
int utama() { string s = "AAABBCDDD";
hapusDuplikat(s); cout << s << endl;
kembalikan 0; } Unduh Jalankan Kode Keluaran Jawa1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 kelas Utama { // Berfungsi untuk menghapus duplikat karakter yang berdekatan dari sebuah string publik statis String hapusDuplikat(String s) { // kasus dasar jika (s == null) { kembalikan null; }
karakter[] karakter = s.keCharArray(); char prev = 0; int k = 0;
untuk (char c: karakter) { jika (sebelumnya . = c) { karakter[k++] = c; sebelumnya = c; } }
kembali baru String(chars).substring(0, k); }
publik statis batal utama(String[] args) { String s = "AAABBCDDD"; Sistem. keluar. println(hapusDuplikat(s)); } } Unduh Jalankan Kode Keluaran Piton1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 # Berfungsi untuk menghapus karakter duplikat yang berdekatan dari sebuah string def hapusDuplikat(s): karakter = [] sebelumnya = Tidak ada
untuk c di s: jika sebelumnya . = c. karakter. tambahkan(c) sebelumnya = c
kembalikan ''. gabung(karakter)
jika __nama__ == '__main__'.
s = 'AAABBCDDD' cetak(hapusDuplikat(s))
Unduh Jalankan Kode Keluaran Bagaimana cara menghapus karakter duplikat berurutan dalam string Python?Hapus semua duplikat berurutan dari string menggunakan rekursi. . Jika string kosong, kembalikan Jika tidak, bandingkan karakter string yang berdekatan. Jika sama maka geser karakter satu per satu ke kiri. Memanggil rekursi pada string S Jika tidak sama maka panggil rekursi dari string S+1 Bagaimana cara menghapus karakter duplikat dalam sebuah string?Kita harus menggunakan langkah-langkah berikut untuk menghapus duplikat. . Pada langkah pertama, kita harus mengubah string menjadi array karakter Hitung ukuran array Panggil metode removeDuplicates() dengan meneruskan larik karakter dan panjangnya Lintasi semua karakter yang ada dalam larik karakter Bagaimana Anda menemukan karakter berurutan dalam sebuah string dengan python?Diberi sebuah String, ekstrak semua karakter berurutan dengan panjang K . Memasukkan. test_str = 'geeksforgeeks terbaik untuk Geeks', K = 3 Keluaran. ['eee', 'sss', 'bbb', 'rrr'] Penjelasan. K string berturut-turut panjang diekstraksi.
Bagaimana Anda menghapus duplikat dari array string dengan Python?Anda dapat menghapus duplikat dari Python menggunakan dict. fromkeys() , yang menghasilkan kamus yang menghapus nilai duplikat. Anda juga dapat mengonversi daftar menjadi satu set. Anda harus mengonversi kamus atau mengatur kembali ke dalam daftar untuk melihat daftar yang duplikatnya telah dihapus. |