Von Yuvraj Chandra
TeilenTweetEmail

Müssen Sie die Permutationen einer Zeichenfolge ausgeben? Wir zeigen Ihnen, wie es in mehreren Sprachen geht.

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, du hast eine Schnur str mit „MUO“ als String-Werte. Sie wurden gebeten, die Permutationen der Zeichenfolge anzuzeigen. So würden Sie vorgehen:

Beispiel 1: Lass 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)

instagram viewer

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

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

Verwandt: 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++-Programm zum Drucken aller
// Permutationen eines Strings
#enthalten
Verwenden des Namensraums std;
// Funktion zum Ausdrucken von Permutationen von String
void findPermutations (string str, int leftIndex, int rightIndex)
{
if (leftIndex == rightIndex)
{
cout << str << endl;
}
anders
{
for (int i = leftIndex; i <= rechtsIndex; ich++)
{
swap (str[leftIndex], str[i]);
findPermutations (str, leftIndex+1, rightIndex);
//backtrack
swap (str[leftIndex], str[i]);
}
}
}
// Fahrercode
int main()
{
Zeichenfolge str1 = "MUO";
int size1 = str1.size();
cout << "str1: " << str1 << endl;
cout << "Permutationen von " << str1 << ":" << endl;
findPermutationen (str1, 0, size1-1);
Zeichenfolge str2 = "AB";
int size2 = str2.size();
cout << "str2: " << str2 << endl;
cout << "Permutationen von " << str2 << ":" << endl;
findPermutationen (str2, 0, size2-1);
Zeichenfolge str3 = "XYZ";
int size3 = str3.size();
cout << "str3: " << str3 << endl;
cout << "Permutationen von " << str3 << ":" << endl;
findPermutations (str3, 0, size3-1);
0 zurückgeben;
}

Ausgabe:

str1: MUO
Permutationen von MUO:
MUO
MOU
UMO
ME
OUM
OMU
Str2: AB
Permutationen von AB:
AB
BA
str3: XYZ
Permutationen von XYZ:
XYZ
XZY
YXZ
YZX
ZYX
ZXY

Verwandt: 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-Programm zum Drucken aller
# Permutationen einer Zeichenfolge
def convertToString (Liste):
return ''.join (Liste)
# Funktion zum Drucken von Permutationen von Strings
def findPermutations (s, leftIndex, rightIndex):
if leftIndex == rightIndex:
print (convertToString (s))
anders:
für i im Bereich (leftIndex, rightIndex+1):
s[linker Index], s[i] = s[i], s[linkerIndex]
findPermutations (s, leftIndex+1, rightIndex)
# zurückverfolgen
s[linker Index], s[i] = s[i], s[linkerIndex]
# Fahrercode
str1 = "MUO"
Größe1 = Länge (str1)
s1 = Liste (str1)
print("str1:", str1)
print("Permutationen von", str1,":")
findPermutationen (s1, 0, size1-1)
str2 = "AB"
size2 = len (str2)
s2 = Liste (str2)
print("str2:", str2)
print("Permutationen von", str2,":")
findPermutationen (s2, 0, size2-1)
str3 = "XYZ"
Größe3 = Länge (str3)
s3 = Liste (str3)
print("str3:", str3)
print("Permutationen von", str3,":")
findPermutationen (s3, 0, size3-1)

Ausgabe:

str1: MUO
Permutationen von MUO:
MUO
MOU
UMO
ME
OUM
OMU
Str2: AB
Permutationen von AB:
AB
BA
str3: XYZ
Permutationen von XYZ:
XYZ
XZY
YXZ
YZX
ZYX
ZXY

Verwandt: 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-Programm zum Drucken aller
// Permutationen eines Strings
// Funktion zum Tauschen von Zeichen des Strings
Funktion swap (str, leftIndex, i) {
lassen temp;
let tempArray = str.split("");
temp = tempArray[linkerIndex] ;
tempArray[linkerIndex] = tempArray[i];
tempArray[i] = temp;
return (tempArray).join("");
}
// Funktion zum Ausdrucken von Permutationen von String
Funktion findPermutations (str, leftIndex, rightIndex) {
if (leftIndex == rightIndex) {
document.write (str + "
");
} anders {
für (lassen Sie i = leftIndex; i <= rechtsIndex; ich++) {
str = swap (str, leftIndex, i);
findPermutations (str, leftIndex+1, rightIndex);
//backtrack
str = swap (str, leftIndex, i);;
}
}
}
// Fahrercode
var str1 = "MUO";
var size1 = str1.length;
document.write("str1: " + str1 + "
");
document.write("Permutationen von " + str1 + ":" + "
");
findPermutationen (str1, 0, size1-1);
var str2 = "AB";
var size2 = str2.length;
document.write("str2: " + str2 + "
");
document.write("Permutationen von " + str2 + ":" + "
");
findPermutationen (str2, 0, size2-1);
var str3 = "XYZ";
var size3 = str3.length;
document.write("str3: " + str3 + "
");
document.write("Permutationen von " + str3 + ":" + "
");
findPermutations (str3, 0, size3-1);

Ausgabe:

str1: MUO
Permutationen von MUO:
MUO
MOU
UMO
ME
OUM
OMU
Str2: AB
Permutationen von AB:
AB
BA
str3: XYZ
Permutationen von XYZ:
XYZ
XZY
YXZ
YZX
ZYX
ZXY

Verwandt: 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-Programm zum Drucken aller
// Permutationen eines Strings
#enthalten
#enthalten
// Funktion zum Tauschen von Zeichen des Strings
void swap (char str[], int leftIndex, int i)
{
Zeichentemp = str[linkerIndex];
str[linkerIndex] = str[i];
Str[i] = Temperatur;
}
// Funktion zum Ausdrucken von Permutationen von String
void findPermutations (char str[], int leftIndex, int rightIndex)
{
if (leftIndex == rightIndex)
{
printf("%s \⁠n", str);
}
anders
{
for (int i = leftIndex; i <= rechtsIndex; ich++)
{
swap (str, leftIndex, i);
findPermutations (str, leftIndex+1, rightIndex);
//backtrack
swap (str, leftIndex, i);
}
}
}
// Fahrercode
int main()
{
char str1[] = "MUO";
int size1 = strlen (str1);
printf("str1: %s \⁠n", str1);
printf("Permutationen von %s: \⁠n", str1);
findPermutationen (str1, 0, size1-1);
char str2[] ​​= "AB";
int size2 = strlen (str2);
printf("str2: %s \⁠n", str2);
printf("Permutationen von %s: \⁠n", str2);
findPermutationen (str2, 0, size2-1);
char str3[] = "XYZ";
int size3 = strlen (str3);
printf("str3: %s \⁠n", str3);
printf("Permutationen von %s: \⁠n", str3);
findPermutations (str3, 0, size3-1);
0 zurückgeben;
}

Ausgabe:

str1: MUO
Permutationen von MUO:
MUO
MOU
UMO
ME
OUM
OMU
Str2: AB
Permutationen von AB:
AB
BA
str3: XYZ
Permutationen von 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.

TeilenTweetEmail
Die 11 besten Websites für kostenlose Online-Computerprogrammierungskurse

Mit diesen kostenlosen Online-Programmierkursen können Sie ohne Informatikabschluss ein großartiger Programmierer werden.

Weiter lesen

Verwandte Themen
  • Programmierung
  • Programmierung
  • C-Programmierung
  • JavaScript
  • Python
Über den Autor
Yuvraj Chandra (58 veröffentlichte Artikel)

Yuvraj studiert Informatik an der University of Delhi, Indien. Seine Leidenschaft gilt der Full-Stack-Webentwicklung. Wenn er nicht gerade schreibt, erforscht er die Tiefe verschiedener Technologien.

Mehr von Yuvraj Chandra

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um zu abonnieren