Av Yuvraj Chandra
DelekvitringE -post

Trenger du å skrive ut permutasjonene til en streng? Vi viser deg hvordan på flere språk.

En permutasjon er et arrangement av objekter i en bestemt rekkefølge. Du kan permutere en streng med lengde n i n! måter.

I denne artikkelen lærer du hvordan du finner alle permutasjoner av en gitt streng ved hjelp av C ++, Python, JavaScript og C.

Hvordan fungerer permutasjoner?

La oss si at du har streng str med "MUO" som strengverdier. Du har blitt bedt om å vise strengens permutasjoner. Slik gjør du det:

Eksempel 1: La str = "MUO"

Permutasjonene til "MUO" er:

  • “MUO”
  • "MOU"
  • “UMO”
  • “UOM”
  • “OUM”
  • “OMU”

Legg merke til rekkefølgen på verdiene. Her er et annet eksempel:

Eksempel 2: La str = "AB"

Alle permutasjonene til “AB” er:

  • “AB”
  • “BA”

Du kan også skrive ut dupliserte permutasjoner hvis det er gjentakende tegn i den gitte strengen. (ABBA, for eksempel)

Nå som du forstår hvordan permutasjoner fungerer, la oss ta en titt på hvordan du kan finne dem ved å bruke ditt foretrukne programmeringsspråk.

Merk: Vi har designet følgende kodeeksempler for å sende permutasjoner for tre strenger: MUO, AB og XYZ. Hvis du vil bruke noen av denne koden, kopierer du den og endrer disse strengene slik at de passer til prosjektet ditt.

I slekt: Hvordan konvertere tegn i en streng til motsatt sak med programmering

C ++ - program for å skrive ut alle permutasjoner av en streng

Nedenfor er C ++ - programmet for å skrive ut alle permutasjoner av en streng:

// C ++ - program for å skrive ut alt
// permutasjoner av en streng
#inkludere
ved hjelp av navneområde std;
// Funksjon for å skrive ut permutasjoner av streng
void findPermutations (string str, int leftIndex, int rightIndex)
{
hvis (leftIndex == rightIndex)
{
cout << str << endl;
}
ellers
{
for (int i = leftIndex; i <= rightIndex; jeg ++)
{
bytte (str [leftIndex], str [i]);
findPermutations (str, leftIndex+1, rightIndex);
//backtrack
bytte (str [leftIndex], str [i]);
}
}
}
// Sjåførkode
int main ()
{
string str1 = "MUO";
int size1 = str1.size ();
cout << "str1:" << str1 << endl;
cout << "Permutasjoner av" << str1 << ":" << endl;
findPermutations (str1, 0, size1-1);
string str2 = "AB";
int size2 = str2.size ();
cout << "str2:" << str2 << endl;
cout << "Permutasjoner av" << str2 << ":" << endl;
findPermutations (str2, 0, size2-1);
string str3 = "XYZ";
int size3 = str3.size ();
cout << "str3:" << str3 << endl;
cout << "Permutasjoner av" << str3 << ":" << endl;
findPermutations (str3, 0, size3-1);
retur 0;
}

Produksjon:

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

I slekt: Hvordan sjekke om en streng er symmetrisk med programmering

Python -program for å skrive ut alle permutasjoner av en streng

Deretter er Python -koden for å skrive ut alle permutasjoner av en streng:

# Python -program for å skrive ut alt
# permutasjoner av en streng
def convertToString (Liste):
return ''. bli med (liste)
# Funksjon for å skrive ut permutasjoner av streng
def findPermutations (s, leftIndex, rightIndex):
hvis leftIndex == rightIndex:
print (convertToString (s))
ellers:
for i i området (venstreIndex, høyreIndex+1):
s [leftIndex], s [i] = s [i], s [leftIndex]
findPermutations (s, leftIndex+1, rightIndex)
# bakspor
s [leftIndex], s [i] = s [i], s [leftIndex]
# Sjåførkode
str1 = "MUO"
størrelse1 = len (str1)
s1 = liste (str1)
print ("str1:", str1)
print ("Permutasjoner av", str1, ":")
findPermutations (s1, 0, size1-1)
str2 = "AB"
size2 = len (str2)
s2 = liste (str2)
print ("str2:", str2)
print ("Permutasjoner av", str2, ":")
findPermutations (s2, 0, size2-1)
str3 = "XYZ"
size3 = len (str3)
s3 = liste (str3)
print ("str3:", str3)
print ("Permutasjoner av", str3, ":")
findPermutations (s3, 0, size3-1)

Produksjon:

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

I slekt: Hvordan sjekke om to strenger er anagrammer av hverandre

JavaScript -program for å skrive ut alle permutasjoner av en streng

Slik skriver du ut permutasjoner i JavaScript:

// JavaScript -program for å skrive ut alt
// permutasjoner av en streng
// Funksjon for å bytte tegn i strengen
funksjonsbytte (str, leftIndex, i) {
la temp;
la tempArray = str.split ("");
temp = tempArray [leftIndex];
tempArray [leftIndex] = tempArray [i];
tempArray [i] = temp;
return (tempArray) .join ("");
}
// Funksjon for å skrive ut permutasjoner av streng
function findPermutations (str, leftIndex, rightIndex) {
hvis (leftIndex == rightIndex) {
document.write (str + "
");
} annet {
for (la i = leftIndex; i <= rightIndex; i ++) {
str = bytte (str, leftIndex, i);
findPermutations (str, leftIndex+1, rightIndex);
//backtrack
str = bytte (str, leftIndex, i) ;;
}
}
}
// Sjåførkode
var str1 = "MUO";
var size1 = str1.length;
document.write ("str1:" + str1 + "
");
document.write ("Permutasjoner av" + str1 + ":" + "
");
findPermutations (str1, 0, size1-1);
var str2 = "AB";
var size2 = str2.length;
document.write ("str2:" + str2 + "
");
document.write ("Permutasjoner av" + str2 + ":" + "
");
findPermutations (str2, 0, size2-1);
var str3 = "XYZ";
var size3 = str3.length;
document.write ("str3:" + str3 + "
");
document.write ("Permutasjoner av" + str3 + ":" + "
");
findPermutations (str3, 0, size3-1);

Produksjon:

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

I slekt: Slik fullfører du FizzBuzz -utfordringen på 5 programmeringsspråk

C Program for å skrive ut alle permutasjoner av en streng

Nedenfor er et C -program som skriver ut alle permutasjoner av en streng:

// C -program for å skrive ut alt
// permutasjoner av en streng
#inkludere
#inkludere
// Funksjon for å bytte tegn i strengen
void swap (char str [], int leftIndex, int i)
{
char temp = str [leftIndex];
str [leftIndex] = str [i];
str [i] = temp;
}
// Funksjon for å skrive ut permutasjoner av streng
void findPermutations (char str [], int leftIndex, int rightIndex)
{
hvis (leftIndex == rightIndex)
{
printf ("%s \ ⁠n", str);
}
ellers
{
for (int i = leftIndex; i <= rightIndex; jeg ++)
{
bytte (str, leftIndex, i);
findPermutations (str, leftIndex+1, rightIndex);
//backtrack
bytte (str, leftIndex, i);
}
}
}
// Sjåførkode
int main ()
{
char str1 [] = "MUO";
int size1 = strlen (str1);
printf ("str1: %s \ ⁠n", str1);
printf ("Permutasjoner av %s: \ ⁠n", str1);
findPermutations (str1, 0, size1-1);
char str2 [] = "AB";
int size2 = strlen (str2);
printf ("str2: %s \ ⁠n", str2);
printf ("Permutasjoner av %s: \ ⁠n", str2);
findPermutations (str2, 0, size2-1);
char str3 [] = "XYZ";
int size3 = strlen (str3);
printf ("str3: %s \ ⁠n", str3);
printf ("Permutasjoner av %s: \ ⁠n", str3);
findPermutations (str3, 0, size3-1);
retur 0;
}

Produksjon:

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

Det er enkelt å skrive ut permutasjoner

I denne artikkelen har du lært hvordan du skriver ut alle permutasjoner av en streng på flere programmeringsspråk. Selv om disse prøveprogrammene ikke er den eneste måten å håndtere permutasjoner på, er de en god start for de som er nye i å bruke dem i koden.

DelekvitringE -post
De 11 beste nettstedene for gratis online dataprogrammeringskurs

Ved å bruke disse gratis online dataprogrammeringskursene, kan du bli en god koder uten datavitenskap.

Les neste

Relaterte temaer
  • Programmering
  • Programmering
  • C Programmering
  • JavaScript
  • Python
Om forfatteren
Yuvraj Chandra (58 artikler publisert)

Yuvraj er en informatikkstudent ved University of Delhi, India. Han brenner for Full Stack webutvikling. Når han ikke skriver, utforsker han dybden i forskjellige teknologier.

Mer fra Yuvraj Chandra

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere