Hapus karakter duplikat berurutan dalam string python

Diberi string, hapus karakter duplikat yang berdekatan darinya. Dengan kata lain, hapus semua karakter yang sama berturut-turut kecuali satu

Sebagai contoh,

Memasukkan. AABBBCDDD
 
Keluaran. ABCD

Latih soal ini

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 n adalah panjang string input dan tidak memerlukan ruang tambahan.

Berikut ini adalah implementasi ide C, Java, dan Python

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

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

ABCD

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

ABCD

Jawa


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

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

ABCD

Piton


1

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

ABCD

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.