Yuvraj Chandra tarafından
PaylaşCıvıldamakE-posta

Bir dizenin permütasyonlarını yazdırmanız mı gerekiyor? Size birkaç dilde nasıl yapılacağını göstereceğiz.

Permütasyon, nesnelerin belirli bir sırada düzenlenmesidir. n uzunluğundaki bir dizeyi n'de değiştirebilirsiniz! yollar.

Bu makalede, belirli bir dizenin tüm permütasyonlarını C++, Python, JavaScript ve C kullanarak nasıl bulacağınızı öğreneceksiniz.

Permütasyonlar Nasıl Çalışır?

Diyelim ki ipiniz var cadde dize değerleri olarak “MUO” ile. Dizenin permütasyonlarını göstermeniz istendi. Bunu nasıl yapacağınız aşağıda açıklanmıştır:

örnek 1: str = "MUO" olsun

“MUO” permütasyonları şunlardır:

  • "MUO"
  • "MUA"
  • "UMO"
  • "UOM"
  • "OUM"
  • "OMÜ"

Değerlerin sırasına dikkat edin. İşte başka bir örnek:

Örnek 2: str = "AB" olsun

“AB”nin tüm permütasyonları:

  • "AB"
  • "BA"

Verilen dizede yinelenen karakterler varsa, yinelenen permütasyonları da yazdırabilirsiniz. (örneğin ABBA)

Artık permütasyonların nasıl çalıştığını anladığınıza göre, tercih ettiğiniz programlama dilini kullanarak bunları nasıl bulabileceğinize bir göz atalım.

instagram viewer

Not: MUO, AB ve XYZ olmak üzere üç dizi için permütasyon çıktısı almak üzere aşağıdaki kod örneklerini tasarladık. Bu kodlardan herhangi birini kullanmak isterseniz, kopyalayın ve bu dizeleri projenize uyacak şekilde değiştirin.

İlgili: Bir Stringin Karakterlerini Programlama ile Zıt Duruma Dönüştürme

Bir Stringin Tüm Permütasyonlarını Yazdıran C++ Programı

Aşağıda bir dizgenin tüm permütasyonlarını yazdırmak için C++ programı verilmiştir:

// hepsini yazdıracak C++ programı
// bir dizgenin permütasyonları
#Dahil etmek
ad alanı std kullanarak;
// Stringin permütasyonlarını yazdıran fonksiyon
void findPermutations (string str, int leftIndex, int rightIndex)
{
if (leftIndex == rightIndex)
{
cout << str << endl;
}
Başka
{
for (int i = leftIndex; ben <= sağIndex; ben++)
{
takas (str[leftIndex], str[i]);
findPermutations (str, leftIndex+1, rightIndex);
//backtrack
takas (str[leftIndex], str[i]);
}
}
}
// Sürücü Kodu
int ana()
{
string str1 = "MUO";
int size1 = str1.size();
cout << "str1: " << str1 << endl;
cout << "" << str1 << ":" << endl;
findPermutations (str1, 0, size1-1);
string str2 = "AB";
int size2 = str2.size();
cout << "str2: " << str2 << endl;
cout << "" << str2 << ":" << endl;
findPermutations (str2, 0, size2-1);
string str3 = "XYZ";
int size3 = str3.size();
cout << "str3: " << str3 << endl;
cout << "" << str3 << ":" << endl;
findPermutations (str3, 0, size3-1);
0 döndür;
}

Çıktı:

str1: MUO
MUO'nun Permütasyonları:
MUO
Mutabakat Muhtırası
UMO
UOM
OUM
OMÜ
str2: AB
AB'nin permütasyonları:
AB
BA
str3: XYZ
XYZ'nin Permütasyonları:
XYZ
XZY
YXZ
YZX
ZYX
ZXY

İlgili: Bir Dizinin Programlama İle Simetrik Olup Olmadığı Nasıl Kontrol Edilir

Bir Stringin Tüm Permütasyonlarını Yazdıran Python Programı

Ardından, bir dizenin tüm permütasyonlarını yazdıracak Python kodu:

# Tümünü yazdıracak Python programı
# bir dizgenin permütasyonu
def convertToString (Liste):
dönüş ''.join (Liste)
# Dizinin permütasyonlarını yazdırma işlevi
def findPermutations (s, leftIndex, rightIndex):
leftIndex == rightIndex ise:
print (convertToString(ler))
Başka:
aralıktaki i için (leftIndex, rightIndex+1):
s[leftIndex], s[i] = s[i], s[leftIndex]
findPermutations (s, leftIndex+1, rightIndex)
# geri dönüş
s[leftIndex], s[i] = s[i], s[leftIndex]
# Sürücü Kodu
str1 = "MUO"
size1 = uzunluk (str1)
s1 = liste (str1)
print("str1:", str1)
print("Permütasyonları", str1,":")
findPermutations (s1, 0, size1-1)
str2 = "AB"
boyut2 = uzunluk (str2)
s2 = liste (str2)
print("str2:", str2)
print("Permütasyonları", str2,":")
findPermutations (s2, 0, size2-1)
str3 = "XYZ"
boyut3 = uzunluk (str3)
s3 = liste (str3)
print("str3:",str3)
print("Permütasyonları", str3,":")
findPermutations (s3, 0, size3-1)

Çıktı:

str1: MUO
MUO'nun Permütasyonları:
MUO
Mutabakat Muhtırası
UMO
UOM
OUM
OMÜ
str2: AB
AB'nin permütasyonları:
AB
BA
str3: XYZ
XYZ'nin Permütasyonları:
XYZ
XZY
YXZ
YZX
ZYX
ZXY

İlgili: İki Dizinin Birbirinin Anagramı Olup Olmadığı Nasıl Kontrol Edilir

Bir Dizenin Tüm Permütasyonlarını Yazdırmak için JavaScript Programı

JavaScript'te permütasyonları şu şekilde yazdırırsınız:

// Hepsini yazdıracak JavaScript programı
// bir dizgenin permütasyonları
// Dizenin karakterlerini değiştiren fonksiyon
işlev takası (str, leftIndex, i) {
sıcaklık bırakın;
izin ver tempArray = str.split("");
temp = tempArray[leftIndex] ;
tempArray[leftIndex] = tempArray[i];
tempArray[i] = temp;
dönüş (tempArray).join("");
}
// Stringin permütasyonlarını yazdıran fonksiyon
function Permutations (str, leftIndex, rightIndex) {
if (leftIndex == rightIndex) {
belge.write (str + "
");
} Başka {
for (let i = leftIndex; ben <= sağIndex; ben++) {
str = takas (str, leftIndex, i);
findPermutations (str, leftIndex+1, rightIndex);
//backtrack
str = takas (str, leftIndex, i);;
}
}
}
// Sürücü Kodu
var str1 = "MUO";
var size1 = str1.length;
belge.write("str1: " + str1 + "
");
document.write("" + str1 + "permütasyonları:" + "
");
findPermutations (str1, 0, size1-1);
var str2 = "AB";
var size2 = str2.length;
belge.write("str2: " + str2 + "
");
document.write("" + str2 + "'nin permütasyonları:" + "
");
findPermutations (str2, 0, size2-1);
var str3 = "XYZ";
var size3 = str3.length;
belge.write("str3: " + str3 + "
");
document.write("" + str3 + "Permütasyonları:" + "
");
findPermutations (str3, 0, size3-1);

Çıktı:

str1: MUO
MUO'nun Permütasyonları:
MUO
Mutabakat Muhtırası
UMO
UOM
OUM
OMÜ
str2: AB
AB'nin permütasyonları:
AB
BA
str3: XYZ
XYZ'nin Permütasyonları:
XYZ
XZY
YXZ
YZX
ZYX
ZXY

İlgili: 5 Programlama Dilinde FizzBuzz Challenge Nasıl Tamamlanır?

Bir Stringin Tüm Permütasyonlarını Yazdıran C Programı

Aşağıda bir dizgenin tüm permütasyonlarını yazdıran bir C programı verilmiştir:

// Hepsini yazdıracak C programı
// bir dizgenin permütasyonları
#Dahil etmek
#Dahil etmek
// Dizenin karakterlerini değiştiren fonksiyon
geçersiz takas (char str[], int leftIndex, int i)
{
karakter sıcaklığı = str[leftIndex];
str[leftIndex] = str[i];
str[i] = sıcaklık;
}
// Stringin permütasyonlarını yazdıran fonksiyon
void findPermutations (char str[], int leftIndex, int rightIndex)
{
if (leftIndex == rightIndex)
{
printf("%s \ n", str);
}
Başka
{
for (int i = leftIndex; ben <= sağIndex; ben++)
{
takas (str, leftIndex, i);
findPermutations (str, leftIndex+1, rightIndex);
//backtrack
takas (str, leftIndex, i);
}
}
}
// Sürücü Kodu
int ana()
{
char str1[] = "MUO";
int size1 = strlen (str1);
printf("str1: %s \ n", str1);
printf("%s'nin permütasyonları: \⁠n", str1);
findPermutations (str1, 0, size1-1);
char str2[] ​​= "AB";
int size2 = strlen (str2);
printf("str2: %s \ n", str2);
printf("%s'nin permütasyonları: \⁠n", str2);
findPermutations (str2, 0, size2-1);
char str3[] = "XYZ";
int size3 = strlen (str3);
printf("str3: %s \⁠n", str3);
printf("%s'nin permütasyonları: \⁠n", str3);
findPermutations (str3, 0, size3-1);
0 döndür;
}

Çıktı:

str1: MUO
MUO'nun Permütasyonları:
MUO
Mutabakat Muhtırası
UMO
UOM
OUM
OMÜ
str2: AB
AB'nin permütasyonları:
AB
BA
str3: XYZ
XYZ'nin Permütasyonları:
XYZ
XZY
YXZ
YZX
ZYX
ZXY

Baskı Permütasyonları Kolaydır

Bu makalede, çeşitli programlama dillerinde bir dizenin tüm permütasyonlarını nasıl yazdıracağınızı öğrendiniz. Bu örnek programlar, permütasyonları işlemenin tek yolu olmasa da, bunları kodlarında kullanmaya yeni başlayanlar için harika bir başlangıçtır.

PaylaşCıvıldamakE-posta
Ücretsiz Çevrimiçi Bilgisayar Programlama Kursları için En İyi 11 Site

Bu ücretsiz çevrimiçi bilgisayar programlama kurslarını kullanarak, bilgisayar bilimi diplomasına sahip olmadan harika bir kodlayıcı olabilirsiniz.

Sonrakini Oku

İlgili konular
  • Programlama
  • Programlama
  • C Programlama
  • JavaScript
  • piton
Yazar hakkında
Yuvraj Chandra (58 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