Yuvraj Chandra tarafından
Paylaşmak
E-posta

İki metin dizisinin anagram olup olmadığını karşılaştırmak, programlama becerilerini geliştirmek için harika bir problem çözme görevidir.

Anagram, farklı bir dizenin harflerinin yeniden düzenlenmesiyle oluşturulan bir dizedir. İki dizenin birbirinin anagramı olup olmadığını kontrol etmek kulağa zor gelebilir, ancak bu sadece biraz zor ve aldatıcı bir şekilde basittir. Bu makalede, C++, Python ve JavaScript kullanarak iki dizenin birbirinin anagramı olup olmadığını nasıl kontrol edeceğinizi öğreneceksiniz.

Sorun bildirimi

Size iki dizi s1 ve s2 verildi, iki dizinin birbirinin anagramı olup olmadığını kontrol etmeniz gerekiyor.

örnek 1: s1 = "yaratıcı" ve s2 = "reaktif" olsun.

İkinci dize, birinci dizenin harfleri yeniden düzenlenerek veya tersi oluşturulabileceğinden, iki dize birbirinin anagramıdır.

Örnek 2: s1 = "Peter Piper bir demet biber turşusu aldı" ve s2 = "Peter Piper bir demet biber turşusu aldı".

instagram viewer

Birinci dizenin harfleri yeniden düzenlenerek ikinci dize oluşturulamadığından ve bunun tersi de geçerli olduğundan, iki dize birbirinin anagramı değildir.

İki Dizinin Birbirinin Anagramı Olup Olmadığını Kontrol Etme İşlemi

İki dizenin birbirinin anagramı olup olmadığını kontrol etmek için aşağıdaki yaklaşımı takip edebilirsiniz:

  1. Her iki dizenin uzunluğunu karşılaştırın.
  2. Her iki dizenin uzunluğu aynı değilse, birbirlerinin anagramı olamazlar. Bu nedenle false döndürün.
  3. Her iki dizenin uzunluğu aynıysa, devam edin.
  4. Her iki diziyi de sıralayın.
  5. Her iki sıralanmış dizeyi karşılaştırın.
  6. Sıralanan dizelerin ikisi de aynıysa, birbirlerinin anagramları oldukları anlamına gelir. Böylece true döndürün.
  7. Her iki sıralanan dize de farklıysa, birbirlerinin anagramları değillerdir. Bu nedenle false döndürün.

İlişkili: Bir Dizenin Palindrom Olup Olmadığı Nasıl Kontrol Edilir

İki Dizenin Birbirinin Anagramı Olup Olmadığını Kontrol Eden C++ Programı

Aşağıda, iki dizenin birbirinin anagramı olup olmadığını kontrol eden C++ programı verilmiştir:

#Dahil etmek 
ad alanı std kullanarak;
bool checkAnagrams (string s1, string s2)
{
int size1 = s1.length();
int size2 = s2.length();
// Her iki dizenin uzunluğu aynı değilse,
// birbirlerinin anagramı olamayacakları anlamına gelir.
// Böylece false döndür.
eğer (beden1 != beden2)
{
yanlış döndür;
}
sıralama (s1.begin(), s1.end());
sıralama (s2.begin(), s2.end());
için (int i = 0; ben < beden1; ben++)
{
if (s1[i] != s2[i])
{
yanlış döndür;
}
}
true döndür;
}
int ana()
{
string s1 = "dinle";
string s2 = "sessiz";
cout << "Dize 1:" << s1 << endl;
cout << "Dize 2: " << s2 << endl;
if (checkAnagrams (s1, s2))
{
cout << "Evet, iki dizi birbirinin anagramıdır" << endl;
}
Başka
{
cout << "Hayır, iki dizi birbirinin anagramı değil" << endl;
}
string s3 = "MUO'ya Hoş Geldiniz";
string s4 = "MUO'ya Hoş Geldiniz";
cout << "Dize 3: " << s3 << endl;
cout << "Dize 4: " << s4 << endl;
if (checkAnagrams (s3, s4))
{
cout << "Evet, iki dizi birbirinin anagramıdır" << endl;
}
Başka
{
cout << "Hayır, iki dizi birbirinin anagramı değil" << endl;
}
string s5 = "Peter Piper bir parça biber turşusu aldı";
string s6 = "Peter Piper'ın çektiği biber turşusu";
cout << "Dize 5: " << s5 << endl;
cout << "Dize 6:" << s6 << endl;
if (checkAnagrams (s5, s6))
{
cout << "Evet, iki dizi birbirinin anagramıdır" << endl;
}
Başka
{
cout << "Hayır, iki dizi birbirinin anagramı değil" << endl;
}
string s7 = "Deniz kıyısında deniz kabuğu satıyor";
string s8 = "deniz kıyısındaki deniz kabukları";
cout << "Dize 7:" << s7 << endl;
cout << "Dize 8: " << s8 << endl;
if (checkAnagrams (s7, s8))
{
cout << "Evet, iki dizi birbirinin anagramıdır" << endl;
}
Başka
{
cout << "Hayır, iki dizi birbirinin anagramı değil" << endl;
}
string s9 = "yaratıcı";
string s10 = "reaktif";
cout << "Dize 9: " << s9 << endl;
cout << "Dize 10:" << s10 << endl;
if (checkAnagrams (s9, s10))
{
cout << "Evet, iki dizi birbirinin anagramıdır" << endl;
}
Başka
{
cout << "Hayır, iki dizi birbirinin anagramı değil" << endl;
}
0 döndür;
}

Çıktı:

1. dize: dinle
2. dize: sessiz
Evet, iki dize birbirinin anagramıdır
3. Dize: MUO'ya Hoş Geldiniz
Dize 4: MUO'ya Hoş Geldiniz
Evet, iki dize birbirinin anagramıdır
5. dize: Peter Piper bir parça biber turşusu aldı
Dizi 6: Peter Piper'ın aldığı bir parça biber turşusu
Hayır, iki dize birbirinin anagramı değil
7. Dizi: Deniz kıyısında deniz kabukları satıyor
Dizi 8: deniz kıyısındaki deniz kabukları
Hayır, iki dize birbirinin anagramı değil
9. dize: yaratıcı
Dizi 10: reaktif
Evet, iki dize birbirinin anagramıdır

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

İki Dizenin Birbirinin Anagramı Olup Olmadığını Kontrol Eden Python Programı

Aşağıda, iki dizenin birbirinin anagramı olup olmadığını kontrol eden Python programı verilmiştir:

def checkAnagramlar (s1, s2):
boyut1 = uzunluk (s1)
boyut2 = uzunluk (s2)
# Her iki dizenin uzunluğu aynı değilse,
# birbirlerinin anagramı olamayacakları anlamına gelir.
# Böylece false döndür.
eğer size1 !=beden2 ise:
0 döndür
s1 = sıralı (s1)
s2 = sıralı (s2)
i aralığında (0, size1):
s1[i] != s2[i] ise:
dönüş Yanlış
dönüş True
s1 = "dinle"
s2 = "sessiz"
print("Dize 1:", s1)
print("Dize 2:", s2)
if (checkAnagrams (s1, s2)):
print("Evet, iki dizi birbirinin anagramıdır")
Başka:
print("Hayır, iki dizi birbirinin anagramı değil")
s3 = "MUO'ya Hoş Geldiniz"
s4 = "MUO'ya Hoş Geldiniz"
print("Dize 3:", s3)
print("Dize 4:", s4)
if (checkAnagrams (s3, s4)):
print("Evet, iki dizi birbirinin anagramıdır")
Başka:
print("Hayır, iki dizi birbirinin anagramı değil")
s5 = "Peter Piper bir parça biber turşusu aldı"
s6 = "Peter Piper'ın topladığı biber turşusu"
print("Dize 5:", s5)
print("Dize 6:", s6)
if (checkAnagrams (s5, s6)):
print("Evet, iki dizi birbirinin anagramıdır")
Başka:
print("Hayır, iki dizi birbirinin anagramı değil")
s7 = "Deniz kıyısında deniz kabuğu satıyor"
s8 = "deniz kıyısındaki deniz kabukları"
print("Dize 7:", s7)
print("Dize 8:", s8)
if (checkAnagrams (s7, s8)):
print("Evet, iki dizi birbirinin anagramıdır")
Başka:
print("Hayır, iki dizi birbirinin anagramı değil")
s9 = "yaratıcı"
s10 = "reaktif"
print("Dize 9:", s9)
print("Dize 10:", s10)
if (checkAnagrams (s9, s10)):
print("Evet, iki dizi birbirinin anagramıdır")
Başka:
print("Hayır, iki dizi birbirinin anagramı değil")

Çıktı:

1. dize: dinle
2. dize: sessiz
Evet, iki dize birbirinin anagramıdır
3. Dize: MUO'ya Hoş Geldiniz
Dize 4: MUO'ya Hoş Geldiniz
Evet, iki dize birbirinin anagramıdır
5. dize: Peter Piper bir parça biber turşusu aldı
Dizi 6: Peter Piper'ın aldığı bir parça biber turşusu
Hayır, iki dize birbirinin anagramı değil
7. Dizi: Deniz kıyısında deniz kabukları satıyor
Dizi 8: deniz kıyısındaki deniz kabukları
Hayır, iki dize birbirinin anagramı değil
9. dize: yaratıcı
Dizi 10: reaktif
Evet, iki dize birbirinin anagramıdır

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

JavaScript'te İki Dizenin Birbirinin Anagramı Olup Olmadığını Kontrol Edin

Aşağıda, iki dizenin birbirinin anagramı olup olmadığını kontrol eden JavaScript programı verilmiştir:

fonksiyon kontrolüAnagramlar (s1, s2) {
size1 = s1.uzunluk olsun;
size2 = s2.uzunluk olsun;
// Her iki dizenin uzunluğu aynı değilse,
// birbirlerinin anagramı olamayacakları anlamına gelir.
// Böylece false döndür.
eğer (beden1 != beden2)
{
yanlış döndür;
}
s1.sort();
s2.sort();
için (i = 0; ben < beden1; ben++)
{
if (s1[i] != s2[i])
{
yanlış döndür;
}
}
true döndür;
}
var s1 = "dinle";
var s2 = "sessiz";
document.write("Dize 1: " + s1 + "
");
belge.write("Dize 2: " + s2 + "
");
if (checkAnagrams (s1.split(""), s2.split(""))) {
document.write("Evet, iki dizi birbirinin anagramıdır" + "
");
} Başka {
document.write("Hayır, iki dizi birbirinin anagramı değil" + "
");
}
var s3 = "MUO'ya Hoş Geldiniz";
var s4 = "MUO'ya Hoş Geldiniz";
belge.write("Dize 3: " + s3 + "
");
belge.write("Dize 4: " + s4 + "
");
if (checkAnagrams (s3.split(""), s4.split(""))) {
document.write("Evet, iki dizi birbirinin anagramıdır" + "
");
} Başka {
document.write("Hayır, iki dizi birbirinin anagramı değil" + "
");
}
var s5 = "Peter Piper bir demet biber turşusu aldı";
var s6 = "Peter Piper'ın seçtiği biber turşusu";
document.write("Dize 5: " + s5 + "
");
document.write("Dize 6: " + s6 + "
");
if (checkAnagrams (s5.split(""), s6.split(""))) {
document.write("Evet, iki dizi birbirinin anagramıdır" + "
");
} Başka {
document.write("Hayır, iki dizi birbirinin anagramı değil" + "
");
}
var s7 = "Deniz kıyısında deniz kabuğu satıyor";
var s8 = "deniz kıyısındaki deniz kabukları";
document.write("Dize 7: " + s7 + "
");
belge.write("Dize 8: " + s8 + "
");
if (checkAnagrams (s7.split(""), s8.split(""))) {
document.write("Evet, iki dizi birbirinin anagramıdır" + "
");
} Başka {
document.write("Hayır, iki dizi birbirinin anagramı değil" + "
");
}
var s9 = "yaratıcı";
var s10 = "reaktif";
belge.write("Dize 9: " + s9 + "
");
document.write("Dize 10: " + s10 + "
");
if (checkAnagrams (s9.split(""), s10.split(""))) {
document.write("Evet, iki dizi birbirinin anagramıdır" + "
");
} Başka {
document.write("Hayır, iki dizi birbirinin anagramı değil" + "
");
}

Çıktı:

1. dize: dinle
2. dize: sessiz
Evet, iki dize birbirinin anagramıdır
3. Dize: MUO'ya Hoş Geldiniz
Dize 4: MUO'ya Hoş Geldiniz
Evet, iki dize birbirinin anagramıdır
5. dize: Peter Piper bir parça biber turşusu aldı
Dizi 6: Peter Piper'ın aldığı bir parça biber turşusu
Hayır, iki dize birbirinin anagramı değil
7. Dizi: Deniz kıyısında deniz kabukları satıyor
Dizi 8: deniz kıyısındaki deniz kabukları
Hayır, iki dize birbirinin anagramı değil
9. dize: yaratıcı
Dizi 10: reaktif
Evet, iki dize birbirinin anagramıdır

İlişkili: Bir Karakterin ASCII Değerini Nasıl Bulursunuz?

Kodlamayı Öğrenmek için Doğru Kaynakları Kullanın

Kodlama becerilerinizi pekiştirmek istiyorsanız, yeni kavramlar öğrenmek ve bunları kullanmak için zaman harcamak önemlidir. Bunu yapmanın bir yolu, aynı anda eğlenirken farklı programlama kavramlarını öğrenmenize yardımcı olacak programlama uygulamalarıdır.

Paylaşmak
E-posta
Uluslararası Programcılar Günü için Kodlamayı Öğrenmenize Yardımcı Olacak 8 Uygulama

Kodlama becerilerinizi tazelemek ister misiniz? Bu uygulamalar ve web siteleri, programlamayı kendi hızınızda öğrenmenize yardımcı olacaktır.

Sonrakini Oku

İlgili konular
  • Programlama
  • JavaScript
  • piton
  • C Programlama
Yazar hakkında
Yuvraj Chandra (43 Makale Yayımlandı)

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!

Abone olmak için buraya tıklayın