C++, Python, C veya JavaScript: Hangisini kullanırsanız kullanın, simetrik dizeleri belirlemek için bu algoritmayı kullanın.
İpin her iki yarısı da aynıysa, bir dize simetrik olduğu söylenir. Bu makalede, belirli bir dizenin simetrik olup olmadığını belirlemek için bir algoritma öğreneceksiniz. Ayrıca bu algoritmayı C++, Python, C ve JavaScript gibi en popüler programlama dillerinde nasıl uygulayacağınızı öğreneceksiniz.
Sorun bildirimi
Size bir ip verilir. Verilen dizenin simetrik olup olmadığını belirlemeniz gerekir.
örnek 1: str = "abab" olsun.
İpin her iki yarısı da aynı olduğu için verilenler simetriktir.
Böylece çıktı "Evet, verilen dize simetrik" olur.
Örnek 2: str = "hanımefendi" olsun.
Dizenin uzunluğu tek ise, dizenin orta karakteri yok sayılır. Bu nedenle, 1. yarı = "ma" ve 2. yarı = "am". İki yarım aynı değildir.
Böylece çıktı "Hayır, verilen dize simetrik değil" olur.
Örnek 3: str = "madma" olsun.
1. yarı = "ma" ve 2. yarı = "ma". Dizenin her iki yarısı da aynıdır.
Böylece çıktı "Evet, verilen dize simetrik" olur.
Verilen Bir Dizinin Simetrik Olup Olmadığını Belirleyen Algoritma
Aşağıdaki yaklaşımı izleyerek belirli bir dizenin simetrik olup olmadığını belirleyebilirsiniz:
- Dizenin uzunluğunu bulun.
- Dizenin midIndex'ini bulun.
- Dizinin uzunluğu çift ise, midIndex = uzunluk/2.
- Dizinin uzunluğu tek ise, midIndex = (uzunluk/2) + 1. Bu durumda, karşılaştırma için dizenin ortadaki karakteri yok sayılır.
- İki işaretçi değişkenini başlat işaretçi1 ve işaretçi2. işaretçi1 dizenin ilk karakterinin (0) dizinini saklayacak ve işaretçi2 dizenin orta karakterinin (midIndex) dizinini saklayacaktır.
- Şimdi bir kullanarak dizenin her iki yarısının karşılık gelen karakterlerini karşılaştırın. süre döngü. Koş süre döngüye kadar işaretçi1.
- Dizinlerdeki karşılık gelen karakterleri karşılaştırın işaretçi1 ve işaretçi2.
- Herhangi bir karşılık gelen karakter farklı bulunursa, geri dönün yanlış. Ve benzer karakterler bulunmazsa, geri dönün NS.
- Ayrıca, değerini artırdığınızdan emin olun. işaretçi1 ve işaretçi2 her yinelemede.
Verilen Bir Dizenin Simetrik Olup Olmadığını Belirleyen C++ Programı
Aşağıda, belirli bir dizenin simetrik olup olmadığını belirleyen C++ programı verilmiştir:
// Dizenin simetrik olup olmadığını kontrol eden C++ programı
#Dahil etmek
ad alanı std kullanarak;
// Dizenin simetrik olup olmadığını kontrol eden fonksiyon
bool isSmetrical (string str)
{
int midIndex;
int uzunluk = str.uzunluk();
// Dizenin uzunluğu çift ise
if (uzunluk % 2 == 0)
{
midIndex = uzunluk/2;
}
// Dizenin uzunluğu tek ise
Başka
{
midIndex = uzunluk/2 + 1;
}
int işaretçi1 = 0;
int pointer2 = midIndex;
while (işaretçi1{
if (str[pointer1] == str[pointer2])
{
işaretçi1 += 1;
işaretçi2 += 1;
}
Başka
{
yanlış döndür;
}
}
true döndür;
}
// Sürücü Kodu
int ana()
{
// Test durumu: 1
string str1 = "abab";
cout << "Dize 1: " << str1 << endl;
if (isSmetrical (str1))
{
cout << "Evet, verilen dizi simetrik" << endl;
}
Başka
{
cout << "Hayır, verilen dize simetrik değil" << endl;
}
// Test durumu: 2
string str2 = "hanımefendi";
cout << "Dize 2: " << str2 << endl;
if (isSmetrical (str2))
{
cout << "Evet, verilen dizi simetrik" << endl;
}
Başka
{
cout << "Hayır, verilen dize simetrik değil" << endl;
}
// Test durumu: 3
string str3 = "deli";
cout << "Dize 3: " << str3 << endl;
if (isSmetrical (str3))
{
cout << "Evet, verilen dizi simetrik" << endl;
}
Başka
{
cout << "Hayır, verilen dize simetrik değil" << endl;
}
// Test durumu: 4
string str4 = "sivil";
cout << "Dize 4: " << str4 << endl;
if (isSmetrical (str4))
{
cout << "Evet, verilen dizi simetrik" << endl;
}
Başka
{
cout << "Hayır, verilen dize simetrik değil" << endl;
}
// Test durumu: 5
string str5 = "khoho";
cout << "Dize 5: " << str5 << endl;
if (isSmetrical (str5))
{
cout << "Evet, verilen dizi simetrik" << endl;
}
Başka
{
cout << "Hayır, verilen dize simetrik değil" << endl;
}
0 döndür;
}
Çıktı:
1. dize: abab
Evet, verilen dize simetriktir
2. dize: hanımefendi
Hayır, verilen dize simetrik değil
3. dize: deli
Evet, verilen dize simetriktir
4. dize: sivil
Hayır, verilen dize simetrik değil
5. dize: khoho
Evet, verilen dize simetriktir
İlişkili: C++, Python ve JavaScript'te Bir Dize Nasıl Ters Çevirilir
Verilen Bir Dizenin Simetrik Olup Olmadığını Belirleyen Python Programı
Aşağıda, belirli bir dizenin simetrik olup olmadığını belirleyen Python programı verilmiştir:
# Dizenin simetrik olup olmadığını kontrol eden Python programı
# Dizenin simetrik olup olmadığını kontrol eden fonksiyon
def issimetrik (str):
midIndex = 0
uzunluk = uzunluk (str)
uzunluk%2 == 0 ise:
midIndex = uzunluk//2
Başka:
midIndex = uzunluk//2 + 1
işaretçi1 = 0
pointer2 = midIndex
işaretçi1 ikenif (str[pointer1] == str[pointer2]):
işaretçi1 += 1
işaretçi2 += 1
Başka:
dönüş Yanlış
dönüş True
# Test durumu: 1
str1 = "abab"
print("Dize 1:", str1)
if (isSmetrical (str1)):
print("Evet, verilen dizi simetriktir")
Başka:
print("Hayır, verilen dizi simetrik değil")
# Test durumu: 2
str2 = "hanımefendi"
print("Dize 2:", str2)
eğer (isSmetrical (str2)):
print("Evet, verilen dizi simetriktir")
Başka:
print("Hayır, verilen dizi simetrik değil")
# Test durumu: 3
str3 = "deli"
print("Dize 3:", str3)
eğer (isSmetrical (str3)):
print("Evet, verilen dizi simetriktir")
Başka:
print("Hayır, verilen dizi simetrik değil")
# Test durumu: 4
str4 = "yurttaş"
print("Dize 4:", str4)
eğer (isSmetrical (str4)):
print("Evet, verilen dizi simetriktir")
Başka:
print("Hayır, verilen dizi simetrik değil")
# Test durumu: 5
str5 = "hoho"
print("Dize 5:", str5)
eğer (isSmetrical (str5)):
print("Evet, verilen dizi simetriktir")
Başka:
print("Hayır, verilen dizi simetrik değil")
Çıktı:
1. dize: abab
Evet, verilen dize simetriktir
2. dize: hanımefendi
Hayır, verilen dize simetrik değil
3. dize: deli
Evet, verilen dize simetriktir
4. dize: sivil
Hayır, verilen dize simetrik değil
5. dize: khoho
Evet, verilen dize simetriktir
İlişkili: Python'u Öğrenmek? İşte Dizeleri Nasıl Manipüle Edeceğiniz
Verilen Bir Dizenin Simetrik Olup Olmadığını Belirleyen JavaScript Programı
Aşağıda, belirli bir dizenin simetrik olup olmadığını belirlemek için JavaScript programı verilmiştir:
// Dizenin simetrik olup olmadığını kontrol eden JavaScript programı
// Dizenin simetrik olup olmadığını kontrol eden fonksiyon
işlev Simetrik (str) {
var midIndex;
var uzunluk = str.uzunluk;
// Dizenin uzunluğu çift ise
if (uzunluk % 2 == 0) {
midIndex = Math.floor (uzunluk/2);
}
// Dizenin uzunluğu tek ise
Başka {
midIndex = Math.floor (uzunluk/2) + 1;
}
var pointer1 = 0;
var pointer2 = midIndex;
while (işaretçi1if (str[pointer1] == str[pointer2]) {
işaretçi1 += 1;
işaretçi2 += 1;
} Başka {
yanlış döndür;
}
}
true döndür;
}
// Test durumu: 1
var str1 = "abab";
document.write("Dize 1: " + str1 + "
");
if (isSmetrical (str1)) {
document.write("Evet, verilen dize simetrik" + "
");
} Başka {
document.write("Hayır, verilen dizi simetrik değil" + "
");
}
// Test durumu: 2
var str2 = "hanımefendi";
belge.write("Dize 2: " + str2 + "
");
if (isSmetrical (str2)) {
document.write("Evet, verilen dize simetrik" + "
");
} Başka {
document.write("Hayır, verilen dizi simetrik değil" + "
");
}
// Test durumu: 3
var str3 = "deli";
belge.write("Dize 3: " + str3 + "
");
if (isSmetrical (str3)) {
document.write("Evet, verilen dize simetrik" + "
");
} Başka {
document.write("Hayır, verilen dizi simetrik değil" + "
");
}
// Test durumu: 4
var str4 = "sivil";
document.write("Dize 4: " + str4 + "
");
if (isSmetrical (str4)) {
document.write("Evet, verilen dize simetrik" + "
");
} Başka {
document.write("Hayır, verilen dizi simetrik değil" + "
");
}
// Test durumu: 5
var str5 = "khoho";
document.write("Dize 5: " + str5 + "
");
if (isSmetrical (str5)) {
document.write("Evet, verilen dize simetrik" + "
");
} Başka {
document.write("Hayır, verilen dizi simetrik değil" + "
");
}
Çıktı:
1. dize: abab
Evet, verilen dize simetriktir
2. dize: hanımefendi
Hayır, verilen dize simetrik değil
3. dize: deli
Evet, verilen dize simetriktir
4. dize: sivil
Hayır, verilen dize simetrik değil
5. dize: khoho
Evet, verilen dize simetriktir
İlişkili: Bir Dizede En Sık Karşılaşılan Karakter Nasıl Bulunur?
Dizelere Dayalı Sorunları Çözün
Dizeler, programlama görüşmeleri için en önemli konulardan biridir. Bir dizginin palindrom olup olmadığını kontrol et, kontrol et gibi dizgelere dayalı bazı ünlü programlama problemlerini çözmelisiniz. iki dize birbirinin anagramıysa, bir dizede en sık geçen karakteri bulun, bir dizeyi ters çevirin, vb. tamamen hazır olmak istiyorsanız.
İpiniz bir palindrom mu? Python, C++ veya JavaScript kullanıp kullanmadığınızı öğrenmek için bu algoritmalardan birini kullanın.
Sonrakini Oku
- Programlama
- JavaScript
- piton
- Kodlama Eğitimleri
- C Programlama

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