So drucken Sie alle Permutationen eines gegebenen Strings in C, C++, JavaScript und Python

Eine Permutation ist eine Anordnung von Objekten in einer bestimmten Reihenfolge. Sie können einen String der Länge n in n permutieren! Wege.

In diesem Artikel erfahren Sie, wie Sie mit C++, Python, JavaScript und C alle Permutationen einer bestimmten Zeichenfolge finden.

Wie funktionieren Permutationen?

Nehmen wir an, Sie haben String str mit „MUO“ als String-Werten. Sie wurden gebeten, die Permutationen der Zeichenfolge anzuzeigen. So würden Sie vorgehen:

Beispiel 1 : Sei str = "MUO"

Die Permutationen von „MUO“ sind:

  • "MUO"
  • "MOU"
  • „UMO“
  • „ME“
  • „UM“
  • "OMU"

Beachten Sie die Reihenfolge der Werte. Hier ist ein weiteres Beispiel:

Beispiel 2 : Sei str = "AB"

Alle Permutationen von „AB“ sind:

  • „AB“
  • "BA"

Sie können auch doppelte Permutationen drucken, wenn sich wiederholende Zeichen in der angegebenen Zeichenfolge enthalten. (ABBA zum Beispiel)

Nachdem Sie nun verstanden haben, wie Permutationen funktionieren, sehen wir uns an, wie Sie sie mit Ihrer bevorzugten Programmiersprache finden können.

Hinweis : Wir haben die folgenden Codebeispiele entworfen, um Permutationen für drei Zeichenfolgen auszugeben: MUO, AB und XYZ. Wenn Sie einen dieser Codes verwenden möchten, kopieren Sie ihn und ändern Sie diese Zeichenfolgen entsprechend Ihrem Projekt.

Verwandte: Wie man Zeichen einer Zeichenfolge mit der Programmierung in den umgekehrten Fall umwandelt

C++-Programm zum Drucken aller Permutationen eines Strings

Unten ist das C++-Programm zum Drucken aller Permutationen eines Strings:

 // C++ program to print all
// permutations of a string
#include <bits/stdc++.h>
using namespace std;

// Function to print permutations of string
void findPermutations(string str, int leftIndex, int rightIndex)
{
if (leftIndex == rightIndex)
{
cout << str << endl;
}
else
{
for (int i = leftIndex; i <= rightIndex; i++)
{
swap(str[leftIndex], str[i]);
findPermutations(str, leftIndex+1, rightIndex);
//backtrack
swap(str[leftIndex], str[i]);
}
}
}
// Driver Code
int main()
{
string str1 = "MUO";
int size1 = str1.size();
cout << "str1: " << str1 << endl;
cout << "Permutations of " << str1 << ":" << endl;
findPermutations(str1, 0, size1-1);
string str2 = "AB";
int size2 = str2.size();
cout << "str2: " << str2 << endl;
cout << "Permutations of " << str2 << ":" << endl;
findPermutations(str2, 0, size2-1);
string str3 = "XYZ";
int size3 = str3.size();
cout << "str3: " << str3 << endl;
cout << "Permutations of " << str3 << ":" << endl;
findPermutations(str3, 0, size3-1);
return 0;
}

Ausgabe :

 str1: MUO
Permutations of MUO:
MUO
MOU
UMO
UOM
OUM
OMU
str2: AB
Permutations of AB:
AB
BA
str3: XYZ
Permutations of XYZ:
XYZ
XZY
YXZ
YZX
ZYX
ZXY

Verwandte: So überprüfen Sie, ob eine Zeichenfolge mit der Programmierung symmetrisch ist

Python-Programm zum Drucken aller Permutationen eines Strings

Als nächstes ist der Python-Code zum Drucken aller Permutationen einer Zeichenfolge:

 # Python program to print all
# permutations of a string
def convertToString(List):
return ''.join(List)
# Function to print permutations of string
def findPermutations(s, leftIndex, rightIndex):
if leftIndex == rightIndex:
print(convertToString(s))
else:
for i in range(leftIndex, rightIndex+1):
s[leftIndex], s[i] = s[i], s[leftIndex]
findPermutations(s, leftIndex+1, rightIndex)
# backtrack
s[leftIndex], s[i] = s[i], s[leftIndex]
# Driver Code
str1 = "MUO"
size1 = len(str1)
s1 = list(str1)
print("str1:", str1)
print("Permutations of", str1,":")
findPermutations(s1, 0, size1-1)
str2 = "AB"
size2 = len(str2)
s2 = list(str2)
print("str2:", str2)
print("Permutations of", str2,":")
findPermutations(s2, 0, size2-1)
str3 = "XYZ"
size3 = len(str3)
s3 = list(str3)
print("str3:", str3)
print("Permutations of", str3,":")
findPermutations(s3, 0, size3-1)

Ausgabe :

 str1: MUO
Permutations of MUO:
MUO
MOU
UMO
UOM
OUM
OMU
str2: AB
Permutations of AB:
AB
BA
str3: XYZ
Permutations of XYZ:
XYZ
XZY
YXZ
YZX
ZYX
ZXY

Verwandte: So überprüfen Sie, ob zwei Strings Anagramme voneinander sind

JavaScript-Programm zum Drucken aller Permutationen eines Strings

So drucken Sie Permutationen in JavaScript:

 // JavaScript program to print all
// permutations of a string
// Function to swap characters of the string
function swap(str, leftIndex, i) {
let temp;
let tempArray = str.split("");
temp = tempArray[leftIndex] ;
tempArray[leftIndex] = tempArray[i];
tempArray[i] = temp;
return (tempArray).join("");
}
// Function to print permutations of string
function findPermutations(str, leftIndex, rightIndex) {
if (leftIndex == rightIndex) {
document.write(str + "<br>");
} else {
for (let i = leftIndex; i <= rightIndex; i++) {
str = swap(str, leftIndex, i);
findPermutations(str, leftIndex+1, rightIndex);
//backtrack
str = swap(str, leftIndex, i);;
}
}
}
// Driver Code
var str1 = "MUO";
var size1 = str1.length;
document.write("str1: " + str1 + "<br>");
document.write("Permutations of " + str1 + ":" + "<br>");
findPermutations(str1, 0, size1-1);
var str2 = "AB";
var size2 = str2.length;
document.write("str2: " + str2 + "<br>");
document.write("Permutations of " + str2 + ":" + "<br>");
findPermutations(str2, 0, size2-1);
var str3 = "XYZ";
var size3 = str3.length;
document.write("str3: " + str3 + "<br>");
document.write("Permutations of " + str3 + ":" + "<br>");
findPermutations(str3, 0, size3-1);

Ausgabe :

 str1: MUO
Permutations of MUO:
MUO
MOU
UMO
UOM
OUM
OMU
str2: AB
Permutations of AB:
AB
BA
str3: XYZ
Permutations of XYZ:
XYZ
XZY
YXZ
YZX
ZYX
ZXY

Verwandte: So schließen Sie die FizzBuzz-Challenge in 5 Programmiersprachen ab

C-Programm zum Drucken aller Permutationen eines Strings

Unten ist ein C-Programm, das alle Permutationen eines Strings ausgibt:

 // C program to print all
// permutations of a string
#include <stdio.h>
#include <string.h>
// Function to swap characters of the string
void swap(char str[], int leftIndex, int i)
{
char temp = str[leftIndex];
str[leftIndex] = str[i];
str[i] = temp;
}
// Function to print permutations of string
void findPermutations(char str[], int leftIndex, int rightIndex)
{
if (leftIndex == rightIndex)
{
printf("%s ⁠n", str);
}
else
{
for (int i = leftIndex; i <= rightIndex; i++)
{
swap(str, leftIndex, i);
findPermutations(str, leftIndex+1, rightIndex);
//backtrack
swap(str, leftIndex, i);
}
}
}
// Driver Code
int main()
{
char str1[] = "MUO";
int size1 = strlen(str1);
printf("str1: %s ⁠n", str1);
printf("Permutations of %s: ⁠n", str1);
findPermutations(str1, 0, size1-1);
char str2[] = "AB";
int size2 = strlen(str2);
printf("str2: %s ⁠n", str2);
printf("Permutations of %s: ⁠n", str2);
findPermutations(str2, 0, size2-1);
char str3[] = "XYZ";
int size3 = strlen(str3);
printf("str3: %s ⁠n", str3);
printf("Permutations of %s: ⁠n", str3);
findPermutations(str3, 0, size3-1);
return 0;
}

Ausgabe :

 str1: MUO
Permutations of MUO:
MUO
MOU
UMO
UOM
OUM
OMU
str2: AB
Permutations of AB:
AB
BA
str3: XYZ
Permutations of XYZ:
XYZ
XZY
YXZ
YZX
ZYX
ZXY

Permutationen drucken ist einfach

In diesem Artikel haben Sie gelernt, wie Sie alle Permutationen eines Strings in mehreren Programmiersprachen ausgeben. Obwohl diese Beispielprogramme nicht die einzige Möglichkeit sind, mit Permutationen umzugehen, sind sie ein guter Anfang für diejenigen, die noch nicht damit vertraut sind, sie in ihrem Code zu verwenden.