Yuvraj Chandra tarafından
E-posta

Bu dizede en çok hangi harf görünüyor? Sizin için çözmek için bir program oluşturun!

Dizeler, programlama röportajlarında çok önemli bir konudur. Röportajlarınızdan önce dizilere odaklanan bazı programlama problemlerini uygulamak akıllıca olacaktır. Bu makalede, bir dizede en sık görülen karakteri nasıl bulacağınızı öğreneceksiniz.

Sorunu Anlamak için Örnekler

örnek 1: Verilen string "Makeuseof" olsun. 'e' karakteri verilen dizgede 2 kez geçer ve diğer tüm karakterler yalnızca bir kez geçer. Böylece, 'e' karakteri verilen dizide en yüksek frekansa sahiptir.

Örnek 2: Verilen dize "Peynir görüyor" olsun. 'e' karakteri verilen dizgede 6 defa geçiyor ve diğer tüm karakterler 6 defadan az geliyor. Böylece, 'e' karakteri verilen dizide en yüksek frekansa sahiptir.

Bir Dizide En Sık Bulunan Karakteri Bulma Yaklaşımı

Karma tekniği, bir dizgede en yüksek frekansa sahip karakteri bulmanın en etkili yoludur. Bu teknikte, dize çaprazlanır ve dizenin her bir karakteri bir ASCII karakter dizisine dönüştürülür.

instagram viewer

Girdi dizgisi "Makeuseof" olsun, bu dizgenin her bir karakteri aşağıdaki gibi özetlenir:

frekans['M'] = 1

sıklık['a] = 1

frekans['k'] = 1

frekans['e'] = 2

sıklık['u'] = 1

sıklık['s'] = 1

sıklık['o'] = 1

frekans['f'] = 1

Frekans dizisindeki maksimum değerin indeksi döndürülür. Buraya 2 en yüksek değerdir, bu nedenle 'e' döndürülür.

En Yüksek Frekansa Sahip Karakteri Bulan C++ Programı

Aşağıda, bir dizedeki en yüksek frekansa sahip karakteri bulmak için C++ programı verilmiştir:

İlişkili: Bir Dizede Verilen Bir Karakterin Oluşumları Nasıl Sayılır

// Karakteri bulan C++ programı
// bir dizgede en yüksek frekansa sahip
#Dahil etmek
#Dahil etmek
#define ASCII_SIZE 256
ad alanı std kullanarak;
char maxFrequencyChar (dize str)
{
// Her karakterin frekansını saklayacak dizi
// Her karakterin frekansını 0 olarak başlattı
int frekans[ASCII_SIZE] = {0};
// Girdi dizesinin uzunluğunu bulma
int lenOfStr = str.length();
// maxFrequency değişkenini başlat
int maxFrekans = -1;
// maxFrequencyChar değişkenini başlat
char maxFrequencyChar;
// Çapraz geçiş ve bakım
// her karakterin sıklığı
için (int i = 0; ben < lenOfStr; ben++)
{
frekans[str[i]]++;
if (maxFrequency < frekans[str[i]])
{
maxFrekans = frekans[str[i]];
maxFrequencyChar = str[i];
}
}
maxFrequencyChar döndür;
}
// Sürücü Kodu
int ana()
{
string str1 = "Hangi cadı hangisi?";
cout << "str1: " << str1 << endl;
cout << "En yüksek frekans karakteri: " << maxFrequencyChar (str1) << endl;
string str2 = "Üç serbest atış attı";
cout << "str2: " << str2 << endl;
cout << "En yüksek frekans karakteri: " << maxFrequencyChar (str2) << endl;
string str3 = "Eddie düzenledi";
cout << "str3: " << str3 << endl;
cout << "En yüksek frekans karakteri: " << maxFrequencyChar (str3) << endl;
string str4 = "Makeuseof";
cout << "str4: " << str4 << endl;
cout << "En yüksek frekans karakteri: " << maxFrequencyChar (str4) << endl;
string str5 = "Peynir görüyor";
cout << "str5: " << str5 << endl;
cout << "En yüksek frekans karakteri: " << maxFrequencyChar (str5) << endl;
}

Çıktı:

str1: Hangi cadı hangisi?
En yüksek frekans karakteri: h
str2: Üç serbest atış attı
En yüksek frekans karakteri: e
str3: Eddie düzenledi
En yüksek frekans karakteri: d
str4: Makeuseof
En yüksek frekans karakteri: e
str5: Peynir görüyor
En yüksek frekans karakteri: e

En Yüksek Frekansa Sahip Karakteri Bulan Python Programı

Aşağıda, bir dizedeki en yüksek frekansa sahip karakteri bulmak için Python programı verilmiştir:

İlişkili: C++, Python ve JavaScript'te Bir Dize Nasıl Ters Çevirilir

# Karakteri bulmak için Python programı
# bir dizideki en yüksek frekansa sahip
ASCII_SIZE = 256
def maxFrequencyChar (str):
# Her karakterin frekansını saklayacak dizi
# Her karakterin frekansını 0 olarak başlattı
frekans = [0] * ASCII_SIZE
# maxFrequency değişkenini başlat
maxFrekans = -1
# maxFrequencyChar değişkenini başlat
maxFrequencyChar = ''
# Geçiş ve bakım
# her karakterin sıklığı
str'deki i için:
frekans[ord (i)] += 1
str'deki i için:
maxFrequency < frekans[ord (i)] ise:
maxFrequency = frekans[ord (i)]
maxFrequencyChar = ben
maxFrequencyChar döndür
# Sürücü Kodu
str1 = "Hangi cadı hangisi?"
print("str1:", str1)
print("En yüksek frekans karakteri:", maxFrequencyChar (str1))
str2 = "Üç serbest atış attı"
print("str2:", str2)
print("En yüksek frekans karakteri:", maxFrequencyChar (str2))
str3 = "Eddie düzenledi"
print("str3:",str3)
print("En yüksek frekans karakteri:", maxFrequencyChar (str3))
str4 = "Yapımı"
print("str4:", str4)
print("En yüksek frekans karakteri:", maxFrequencyChar (str4))
str5 = "Peynir görüyor"
print("str5:", str5)
print("En yüksek frekans karakteri:", maxFrequencyChar (str5))

Çıktı:

str1: Hangi cadı hangisi?
En yüksek frekans karakteri: h
str2: Üç serbest atış attı
En yüksek frekans karakteri: e
str3: Eddie düzenledi
En yüksek frekans karakteri: d
str4: Makeuseof
En yüksek frekans karakteri: e
str5: Peynir görüyor
En yüksek frekans karakteri: e

En Yüksek Frekansa Sahip Karakteri Bulan C Programı

Aşağıda, bir dizideki en yüksek frekansa sahip karakteri bulmak için C programı verilmiştir:

İlişkili: Bir Dizedeki Ünlüler, Ünsüzler, Rakamlar ve Özel Karakterler Nasıl Bulunur?

// Karakteri bulan C programı
// bir dizgede en yüksek frekansa sahip
#Dahil etmek
#Dahil etmek
#define ASCII_SIZE 256
ad alanı std kullanarak;
char maxFrequencyChar (char *str)
{
// Her karakterin frekansını saklayacak dizi
// Her karakterin frekansını 0 olarak başlattı
int frekans[ASCII_SIZE] = {0};
// Girdi dizesinin uzunluğunu bulma
int lenOfStr = strlen (str);
// maxFrequency değişkenini başlat
int maxFrekans = 0;
// maxFrequencyChar değişkenini başlat
char maxFrequencyChar;
// Çapraz geçiş ve bakım
// her karakterin sıklığı
için (int i = 0; ben < lenOfStr; ben++)
{
frekans[str[i]]++;
if (maxFrequency < frekans[str[i]])
{
maxFrekans = frekans[str[i]];
maxFrequencyChar = str[i];
}
}
maxFrequencyChar döndür;
}
// Sürücü Kodu
int ana()
{
char str1[] = "Hangi cadı hangisi?";
printf("str1: %s", str1);
printf("En yüksek frekans karakteri: %c \​n", maxFrequencyChar (str1));
char str2[] ​​= "Üç serbest atış attı";
printf("str2: %s", str2);
printf("En yüksek frekans karakteri: %c \​n", maxFrequencyChar (str2));
char str3[] = "Eddie düzenledi";
printf("str3: %s", str3);
printf("En yüksek frekans karakteri: %c \​n", maxFrequencyChar (str3));
char str4[] = "Makeuseof";
printf("str4: %s", str4);
printf("En yüksek frekans karakteri: %c \​n", maxFrequencyChar (str4));
char str5[] = "Peynir görüyor";
printf("str1: %s", str5);
printf("En yüksek frekans karakteri: %c \​n", maxFrequencyChar (str5));
}

Çıktı:

str1: Hangi cadı hangisi?
En yüksek frekans karakteri: h
str2: Üç serbest atış attı
En yüksek frekans karakteri: e
str3: Eddie düzenledi
En yüksek frekans karakteri: d
str4: Makeuseof
En yüksek frekans karakteri: e
str5: Peynir görüyor
En yüksek frekans karakteri: e

En Yüksek Frekansa Sahip Karakteri Bulmak İçin JavaScript Programı

Bir dizgede en yüksek frekansa sahip karakteri bulmak için JavaScript programı aşağıdadır:

// Karakteri bulmak için JavaScript programı
// bir dizgede en yüksek frekansa sahip
ASCII_SIZE = 256 olsun;
fonksiyon maxFrequencyChar (str)
{
// Her karakterin frekansını saklayacak dizi
// Her karakterin frekansını 0 olarak başlattı
let frekans = yeni Dizi (ASCII_SIZE);
için (i = 0; ben < ASCII_SIZE; ben++)
{
frekans[i] = 0;
}
// Girdi dizesinin uzunluğunu bulma
lenOfStr = str.length olsun;
için (i = 0; ben < lenOfStr; ben++)
{
frekans[str[i].charCodeAt (0)] += 1;
}
// maxFrequency değişkenini başlat
maxFrequency = -1 olsun;
// maxFrequencyChar değişkenini başlat
maxFrequencyChar = '';
// Çapraz geçiş ve bakım
// her karakterin sıklığı
için (i = 0; ben < lenOfStr; ben++)
{
if (maxFrequency < frekans[str[i].charCodeAt (0)])
{
maxFrequency = frekans[str[i].charCodeAt (0)];
maxFrequencyChar = str[i];
}
}
maxFrequencyChar döndür;
}
// Sürücü Kodu
let str1 = "Hangi cadı hangisi?";
belge.write("str1: " + str1 + "
");
document.write("En yüksek frekans karakteri: " + maxFrequencyChar (str1) + "
")
let str2 = "Üç serbest atış attı";
belge.write("str2: " + str2 + "
");
document.write("En yüksek frekans karakteri: " + maxFrequencyChar (str2) + "
")
let str3 = "Eddie düzenledi";
belge.write("str3: " + str3 + "
");
document.write("En yüksek frekans karakteri: " + maxFrequencyChar (str3) + "
")
let str4 = "Makeuseof";
belge.write("str4: " + str4 + "
");
document.write("En yüksek frekans karakteri: " + maxFrequencyChar (str4) + "
")
let str5 = "Peynir görüyor";
belge.write("str5: " + str5 + "
");
document.write("En yüksek frekans karakteri: " + maxFrequencyChar (str5) + "
")

Çıktı:

str1: Hangi cadı hangisi?
En yüksek frekans karakteri: h
str2: Üç serbest atış attı
En yüksek frekans karakteri: e
str3: Eddie düzenledi
En yüksek frekans karakteri: d
str4: Makeuseof
En yüksek frekans karakteri: e
str5: Peynir görüyor
En yüksek frekans karakteri: e

Zaman ve Mekan Karmaşıklığını Analiz Edin

Zaman karmaşıklığı maxFrequencyChar() fonksiyon O(n). Uzay karmaşıklığı maxFrequencyChar() fonksiyon O(1) sabit bir alan olarak (Hash dizisi). Giriş dizesi boyutuna bağlı değildir.

Big-O notasyonu, kodunuzu çalıştırmanın ne kadar süreceğini hesaplamanın bir yolunu sunar. Algoritmaların analizi için en önemli kavramlardan biridir. Bir programcıysanız, Big-O Notation'ı bilmelisiniz.

E-posta
Big-O Notasyonu Nedir?

Kodunuzun verimli olması gerekiyor, ancak bir şeyin ne kadar verimli olduğunu nasıl gösterirsiniz? Big-O ile!

Sonrakini Oku

İlgili konular
  • Programlama
  • JavaScript
  • piton
  • Kodlama Eğitimleri
  • C Programlama
Yazar hakkında
Yuvraj Chandra (30 Makale Yayınlandı)

Yuvraj, Hindistan Delhi Üniversitesi'nde Bilgisayar Bilimleri lisans öğrencisidir. Full Stack Web Geliştirme konusunda tutkulu. Yazmadığı zamanlarda farklı teknolojilerin derinliğini keşfediyor.

Yuvraj Chandra'dan Daha Fazla

Haber bültenimize abone ol

Teknik ipuçları, incelemeler, ücretsiz e-kitaplar ve özel fırsatlar için bültenimize katılın!

Bir adım daha…!

Lütfen size az önce gönderdiğimiz e-postadaki e-posta adresinizi onaylayın.

.