Har du brug for at udskrive permutationerne af en streng? Vi viser dig hvordan på flere sprog.
En permutation er et arrangement af objekter i en bestemt rækkefølge. Du kan permutere en streng med længden n i n! måder.
I denne artikel lærer du, hvordan du finder alle permutationer af en given streng ved hjælp af C ++, Python, JavaScript og C.
Hvordan fungerer permutationer?
Lad os sige, at du har streng str med "MUO" som strengværdier. Du er blevet bedt om at vise strengens permutationer. Sådan gør du:
Eksempel 1: Lad str = "MUO"
Permutationerne for "MUO" er:
- “MUO”
- "MOU"
- “UMO”
- “UOM”
- “OUM”
- “OMU”
Bemærk rækkefølgen af værdierne. Her er et andet eksempel:
Eksempel 2: Lad str = "AB"
Alle permutationer af “AB” er:
- “AB”
- “BA”
Du kan også udskrive dublerede permutationer, hvis der er gentagne tegn i den givne streng. (For eksempel ABBA)
Nu hvor du forstår, hvordan permutationer fungerer, lad os tage et kig på, hvordan du kan finde dem ved hjælp af dit foretrukne programmeringssprog.
Bemærk: Vi har designet følgende kodeeksempler til at sende permutationer til tre strenge: MUO, AB og XYZ. Hvis du gerne vil bruge nogen af denne kode, skal du kopiere den og ændre disse strenge, så de passer til dit projekt.
Relaterede: Sådan konverteres tegn i en streng til den modsatte sag med programmering
C ++ - program til at udskrive alle permutationer af en streng
Nedenfor er C ++ - programmet til at udskrive alle permutationer af en streng:
// C ++ - program til at udskrive alle
// permutationer af en streng
#omfatte
ved hjælp af navneområde std;
// Funktion til udskrivning af permutationer af streng
void findPermutations (string str, int leftIndex, int rightIndex)
{
hvis (venstreIndex == højreIndex)
{
cout << str << endl;
}
andet
{
for (int i = leftIndex; i <= rightIndex; jeg ++)
{
swap (str [leftIndex], str [i]);
findPermutations (str, leftIndex+1, rightIndex);
//backtrack
swap (str [leftIndex], str [i]);
}
}
}
// Driverkode
int main ()
{
string str1 = "MUO";
int size1 = str1.size ();
cout << "str1:" << str1 << endl;
cout << "Permutationer af" << str1 << ":" << endl;
findPermutations (str1, 0, size1-1);
string str2 = "AB";
int size2 = str2.size ();
cout << "str2:" << str2 << endl;
cout << "Permutationer af" << str2 << ":" << endl;
findPermutations (str2, 0, size2-1);
string str3 = "XYZ";
int size3 = str3.size ();
cout << "str3:" << str3 << endl;
cout << "Permutationer af" << str3 << ":" << endl;
findPermutations (str3, 0, size3-1);
returnere 0;
}
Produktion:
str1: MUO
Permutationer af MUO:
MUO
MOU
UMO
UOM
OUM
OMU
str2: AB
Permutationer af AB:
AB
BA
str3: XYZ
Permutationer af XYZ:
XYZ
XZY
YXZ
YZX
ZYX
ZXY
Relaterede: Sådan kontrolleres, om en streng er symmetrisk med programmering
Python -program til at udskrive alle permutationer af en streng
Dernæst er Python -koden til at udskrive alle permutationer af en streng:
# Python -program til at udskrive alle
# permutationer af en streng
def convertToString (Liste):
return '' .join (Liste)
# Funktion til udskrivning af permutationer af streng
def findPermutations (s, leftIndex, rightIndex):
hvis leftIndex == rightIndex:
print (convertToString (s))
andet:
for i i området (venstreIndex, højreIndex+1):
s [leftIndex], s [i] = s [i], s [leftIndex]
findPermutations (s, leftIndex+1, rightIndex)
# backtrack
s [leftIndex], s [i] = s [i], s [leftIndex]
# Driverkode
str1 = "MUO"
størrelse1 = len (str1)
s1 = liste (str1)
print ("str1:", str1)
print ("Permutationer af", str1, ":")
findPermutations (s1, 0, size1-1)
str2 = "AB"
size2 = len (str2)
s2 = liste (str2)
print ("str2:", str2)
print ("Permutationer af", str2, ":")
findPermutations (s2, 0, size2-1)
str3 = "XYZ"
size3 = len (str3)
s3 = liste (str3)
print ("str3:", str3)
print ("Permutationer af", str3, ":")
findPermutations (s3, 0, size3-1)
Produktion:
str1: MUO
Permutationer af MUO:
MUO
MOU
UMO
UOM
OUM
OMU
str2: AB
Permutationer af AB:
AB
BA
str3: XYZ
Permutationer af XYZ:
XYZ
XZY
YXZ
YZX
ZYX
ZXY
Relaterede: Sådan kontrolleres, om to strenge er anagrammer over hinanden
JavaScript -program til udskrivning af alle strengens tilladelser
Sådan udskriver du permutationer i JavaScript:
// JavaScript -program til at udskrive alle
// permutationer af en streng
// Funktion til at bytte tegn i strengen
funktionsbytte (str, leftIndex, i) {
lad temp;
lad tempArray = str.split ("");
temp = tempArray [leftIndex];
tempArray [leftIndex] = tempArray [i];
tempArray [i] = temp;
return (tempArray) .join ("");
}
// Funktion til udskrivning af permutationer af streng
funktion findPermutations (str, leftIndex, rightIndex) {
hvis (venstreIndex == højreIndex) {
document.write (str + "
");
} andet {
for (lad i = leftIndex; i <= rightIndex; i ++) {
str = swap (str, leftIndex, i);
findPermutations (str, leftIndex+1, rightIndex);
//backtrack
str = swap (str, leftIndex, i) ;;
}
}
}
// Driverkode
var str1 = "MUO";
var size1 = str1.length;
document.write ("str1:" + str1 + "
");
document.write ("Permutationer for" + str1 + ":" + "
");
findPermutations (str1, 0, size1-1);
var str2 = "AB";
var size2 = str2.length;
document.write ("str2:" + str2 + "
");
document.write ("Permutationer af" + str2 + ":" + "
");
findPermutations (str2, 0, size2-1);
var str3 = "XYZ";
var size3 = str3.length;
document.write ("str3:" + str3 + "
");
document.write ("Permutationer for" + str3 + ":" + "
");
findPermutations (str3, 0, size3-1);
Produktion:
str1: MUO
Permutationer af MUO:
MUO
MOU
UMO
UOM
OUM
OMU
str2: AB
Permutationer af AB:
AB
BA
str3: XYZ
Permutationer af XYZ:
XYZ
XZY
YXZ
YZX
ZYX
ZXY
Relaterede: Sådan gennemføres FizzBuzz -udfordringen på 5 programmeringssprog
C Program til at udskrive alle permutationer af en streng
Nedenfor er et C -program, der udskriver alle permutationer af en streng:
// C -program til at udskrive alle
// permutationer af en streng
#omfatte
#omfatte
// Funktion til at bytte tegn i strengen
void swap (char str [], int leftIndex, int i)
{
char temp = str [leftIndex];
str [leftIndex] = str [i];
str [i] = temp;
}
// Funktion til udskrivning af permutationer af streng
void findPermutations (char str [], int leftIndex, int rightIndex)
{
hvis (venstreIndex == højreIndex)
{
printf ("%s \ n", str);
}
andet
{
for (int i = leftIndex; i <= rightIndex; jeg ++)
{
swap (str, leftIndex, i);
findPermutations (str, leftIndex+1, rightIndex);
//backtrack
swap (str, leftIndex, i);
}
}
}
// Driverkode
int main ()
{
char str1 [] = "MUO";
int size1 = strlen (str1);
printf ("str1: %s \ n", str1);
printf ("Permutationer af %s: \ n", str1);
findPermutations (str1, 0, size1-1);
char str2 [] = "AB";
int size2 = strlen (str2);
printf ("str2: %s \ n", str2);
printf ("Permutationer af %s: \ n", str2);
findPermutations (str2, 0, size2-1);
char str3 [] = "XYZ";
int size3 = strlen (str3);
printf ("str3: %s \ n", str3);
printf ("Permutationer af %s: \ n", str3);
findPermutations (str3, 0, size3-1);
returnere 0;
}
Produktion:
str1: MUO
Permutationer af MUO:
MUO
MOU
UMO
UOM
OUM
OMU
str2: AB
Permutationer af AB:
AB
BA
str3: XYZ
Permutationer af XYZ:
XYZ
XZY
YXZ
YZX
ZYX
ZXY
Udskrivning af permutationer er let
I denne artikel har du lært, hvordan du udskriver alle permutationer af en streng på flere programmeringssprog. Selvom disse prøveprogrammer ikke er den eneste måde at håndtere permutationer på, er de en god start for dem, der er nye til at bruge dem i deres kode.
Ved at bruge disse gratis online computerprogrammeringskurser kan du blive en god koder uden en datalogisk grad.
Læs Næste
- Programmering
- Programmering
- C Programmering
- JavaScript
- Python
Yuvraj er en datalogi bachelorstuderende ved University of Delhi, Indien. Han brænder for Full Stack Web Development. Når han ikke skriver, undersøger han dybden af forskellige teknologier.
Abonner på vores nyhedsbrev
Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!
Klik her for at abonnere