Rumah > pembangunan bahagian belakang > C++ > Dalam bahasa C, bilangan maksimum aksara antara mana-mana dua aksara yang sama dalam rentetan

Dalam bahasa C, bilangan maksimum aksara antara mana-mana dua aksara yang sama dalam rentetan

王林
Lepaskan: 2023-09-17 20:53:02
ke hadapan
1388 orang telah melayarinya

Dalam bahasa C, bilangan maksimum aksara antara mana-mana dua aksara yang sama dalam rentetan

Kami mendapat rentetan huruf. Akan ada sekurang-kurangnya dua aksara yang sama dalam tatasusunan. Tugas di sini adalah untuk mencari bilangan maksimum aksara antara mana-mana dua aksara yang sama. Jika tiada pendua mana-mana aksara, -1 dikembalikan. . ', indeks mereka ialah -

1. 2‘a’ first index 0 last 5 , characters in between 5-0-1=4
2. ‘b’ first index 1 last 4 , characters in between 4-1-1=2
   Maximum character in between repeating alphabets : 4
Salin selepas log masuk

input - string str = "AbcAaBcbC"

output - bilangan maksimum aksara antara mana-mana dua aksara yang sama dalam rentetan - 5

-penjelasan 'A', 'b', 'c' dan indeksnya adalah seperti berikut:

1. ‘A’ first index 0 last 3 , characters in between 3-0-1=2
2. ‘b’ first index 1 last 7 , characters in between 7-1-1=5
3. ‘c’ first index 2 last 6 , characters in between 6-2-1=3
   Maximum character in between repeating alphabets : 5
Salin selepas log masuk

Nota − Jika rentetan input ialah "abcdefg", tiada aksara berulang, jadi fungsi akan kembali -1.

Kaedah yang digunakan dalam program berikut adalah seperti berikut

Kami menggunakan tatasusunan aksara untuk menyimpan rentetan Str[]

Fungsi maxChars(char str[],int n) digunakan untuk mengira perbezaan antara mana-mana dua huruf berulang Bilangan maksimum aksara.

Kami memulakan pembolehubah maksC kepada -1.

  • Lintas tatasusunan dari permulaan rentetan dalam gelung for.

  • Gelung melalui aksara yang tinggal dalam gelung bersarang untuk dan cari aksara pendua (jika str[i] == str[j]).

  • Jika benar, perbezaan antara aksara dikira dengan menolak indeks (temp = j - i - 1).

  • Jika nilai ini ialah nilai maksimum yang ditemui setakat ini, simpan dalam maxC.

  • Selepas melintasi keseluruhan rentetan, kembalikan maxC.

  • Contoh

  • Demonstrasi
  • #include <stdio.h>
    #include <stdio.h>
    #include <math.h>
    int maxChars(char str[],int n){
       int size = n;
       int maxC = -1;
       for (int i = 0; i < n - 1; i++)
          for (int j = i + 1; j < n; j++)
             if (str[i] == str[j]){
                int temp=abs(j-i-1);
                maxC = maxC>temp?maxC:temp;
             }
       return maxC;
    }
    // Driver code
    int main(){
       char Str[] = "AbcAaBcbC";
       printf("Maximum number of characters between any two same character in a string :%d",
       maxChars(Str,9) );
       return 0;
    }
    Salin selepas log masuk

    Output

  • Jika kita menjalankan kod di atas, ia akan menghasilkan output berikut −
  • Maximum number of characters between any two same character in a string : 5
    Salin selepas log masuk

    Atas ialah kandungan terperinci Dalam bahasa C, bilangan maksimum aksara antara mana-mana dua aksara yang sama dalam rentetan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan