Yuvraj Chandra poolt
JagaPiiksumaE -post

Kas vajate stringi permutatsioone printida? Näitame teile, kuidas seda teha mitmes keeles.

Permutatsioon on objektide paigutus kindlas järjekorras. Saate permeerida n pikkusega stringi n -is! viise.

Sellest artiklist saate teada, kuidas C ++, Pythoni, JavaScripti ja C abil leida antud stringi kõik permutatsioonid.

Kuidas Permutatsioonid toimivad?

Oletame, et teil on string str stringi väärtuseks „MUO”. Teil paluti näidata stringi permutatsioone. Sellega toimiksite järgmiselt.

Näide 1: Olgu str = "MUO"

MUO permutatsioonid on järgmised:

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

Pange tähele väärtuste järjekorda. Siin on veel üks näide:

Näide 2: Olgu str = "AB"

Kõik "AB" permutatsioonid on järgmised:

  • "AB"
  • "BA"

Samuti saate printida dubleeritud permutatsioone, kui antud stringis on korduvaid märke. (Näiteks ABBA)

Nüüd, kui saate aru, kuidas permutatsioonid toimivad, vaatame, kuidas neid eelistatud programmeerimiskeelt kasutades leida.

Märge: Oleme välja töötanud järgmised koodinäited kolme stringi permutatsioonide väljastamiseks: MUO, AB ja XYZ. Kui soovite mõnda sellest koodist kasutada, kopeerige see ja muutke need stringid oma projektile sobivaks.

Seotud: Kuidas teisendada programmeerimisega stringi tegelasi vastandjuhtumiks

C ++ programm stringi kõigi lubade printimiseks

Allpool on C ++ programm stringi kõigi permutatsioonide printimiseks:

// C ++ programm kõigi printimiseks
// stringi permutatsioonid
#kaasake
kasutades nimeruumi std;
// Funktsioon stringi permutatsioonide printimiseks
void findPermutations (string str, int leftIndex, int rightIndex)
{
kui (leftIndex == rightIndex)
{
cout << str << endl;
}
muidu
{
jaoks (int i = vasakIndex; i <= paremindeks; mina ++)
{
vahetus (str [leftIndex], str [i]);
findPermutations (str, leftIndex+1, rightIndex);
//backtrack
vahetus (str [leftIndex], str [i]);
}
}
}
// Juhi kood
int main ()
{
string str1 = "MUO";
int suurus1 = str1.size ();
cout << "str1:" << str1 << endl;
cout << "Permutatsioonid" << str1 << ":" << endl;
findPermutations (str1, 0, suurus1-1);
string str2 = "AB";
int suurus2 = str2.size ();
cout << "str2:" << str2 << endl;
cout << "Permutatsioonid" << str2 << ":" << endl;
findPermutations (str2, 0, suurus2-1);
string str3 = "XYZ";
int suurus3 = str3.size ();
cout << "str3:" << str3 << endl;
cout << "Permutatsioonid" << str3 << ":" << endl;
findPermutations (str3, 0, suurus3-1);
tagasitulek 0;
}

Väljund:

str1: MUO
MUO lubadused:
MUO
MOU
UMO
UOM
OUM
OMU
str2: AB
AB lubadused:
AB
BA
str3: XYZ
XYZ -i lubadused:
XYZ
XZY
YXZ
YZX
ZYX
ZXY

Seotud: Kuidas kontrollida, kas string on programmeerimisega sümmeetriline

Pythoni programm stringi kõigi lubade printimiseks

Järgmisena on Pythoni kood stringi kõigi permutatsioonide printimiseks:

# Pythoni programm kõigi printimiseks
Stringi # permutatsioon
def convertToString (loend):
tagasipöördumine ''. liituma (nimekiri)
# Funktsioon stringi permutatsioonide printimiseks
def findPermutations (s, leftIndex, rightIndex):
kui leftIndex == rightIndex:
print (convertToString (s))
muidu:
i jaoks vahemikus (leftIndex, rightIndex+1):
s [leftIndex], s [i] = s [i], s [leftIndex]
findPermutations (s, leftIndex+1, rightIndex)
# tagasiminek
s [leftIndex], s [i] = s [i], s [leftIndex]
# Juhi kood
str1 = "MUO"
suurus1 = len (str1)
s1 = loend (str1)
print ("str1:", str1)
print ("Permutatsioonid", str1, ":")
findPermutations (s1, 0, suurus1-1)
str2 = "AB"
suurus2 = len (str2)
s2 = loend (str2)
print ("str2:", str2)
print ("Permutatsioonid", str2, ":")
findPermutations (s2, 0, suurus2-1)
str3 = "XYZ"
suurus3 = len (str3)
s3 = loend (str3)
print ("str3:", str3)
print ("Permutatsioonid", str3, ":")
findPermutations (s3, 0, suurus3-1)

Väljund:

str1: MUO
MUO lubadused:
MUO
MOU
UMO
UOM
OUM
OMU
str2: AB
AB lubadused:
AB
BA
str3: XYZ
XYZ -i lubadused:
XYZ
XZY
YXZ
YZX
ZYX
ZXY

Seotud: Kuidas kontrollida, kas kaks stringi on üksteisegrammid

JavaScripti programm stringi kõigi lubade printimiseks

JavaScriptis permutatsioonide printimiseks tehke järgmist.

// JavaScripti programm kõigi printimiseks
// stringi permutatsioonid
// Funktsioon stringi märkide vahetamiseks
funktsioonivahetus (str, leftIndex, i) {
lase temp;
las tempArray = str.split ("");
temp = tempArray [leftIndex];
tempArray [leftIndex] = tempArray [i];
tempArray [i] = temp;
return (tempArray). liituma ("");
}
// Funktsioon stringi permutatsioonide printimiseks
function findPermutations (str, leftIndex, rightIndex) {
if (leftIndex == rightIndex) {
document.write (str + "
");
} muud {
jaoks (olgu i = vasakIndex; i <= paremindeks; mina ++) {
str = vahetus (str, leftIndex, i);
findPermutations (str, leftIndex+1, rightIndex);
//backtrack
str = vahetus (str, leftIndex, i) ;;
}
}
}
// Juhi kood
var str1 = "MUO";
var suurus1 = str1.pikkus;
document.write ("str1:" + str1 + "
");
document.write ("Permutatsioonid" + str1 + ":" + "
");
findPermutations (str1, 0, suurus1-1);
var str2 = "AB";
var suurus2 = str2.pikkus;
document.write ("str2:" + str2 + "
");
document.write ("Permutatsioonid" + str2 + ":" + "
");
findPermutations (str2, 0, suurus2-1);
var str3 = "XYZ";
var suurus3 = str3.pikkus;
document.write ("str3:" + str3 + "
");
document.write ("Permutatsioonid" + str3 + ":" + "
");
findPermutations (str3, 0, suurus3-1);

Väljund:

str1: MUO
MUO lubadused:
MUO
MOU
UMO
UOM
OUM
OMU
str2: AB
AB lubadused:
AB
BA
str3: XYZ
XYZ -i lubadused:
XYZ
XZY
YXZ
YZX
ZYX
ZXY

Seotud: Kuidas täita FizzBuzz väljakutse 5 programmeerimiskeeles

C Programm stringi kõigi lubade printimiseks

Allpool on C -programm, mis prindib stringi kõik permutatsioonid:

// C programm kõigi printimiseks
// stringi permutatsioonid
#kaasake
#kaasake
// Funktsioon stringi märkide vahetamiseks
tühine vahetus (char str [], int leftIndex, int i)
{
char temp = str [leftIndex];
str [leftIndex] = str [i];
str [i] = temperatuur;
}
// Funktsioon stringi permutatsioonide printimiseks
void findPermutations (char str [], int leftIndex, int rightIndex)
{
kui (leftIndex == rightIndex)
{
printf ("%s \ ⁠n", str);
}
muidu
{
jaoks (int i = vasakIndex; i <= paremindeks; mina ++)
{
vahetus (str, leftIndex, i);
findPermutations (str, leftIndex+1, rightIndex);
//backtrack
vahetus (str, leftIndex, i);
}
}
}
// Juhi kood
int main ()
{
char str1 [] = "MUO";
int suurus1 = strlen (str1);
printf ("str1: %s \ ⁠n", str1);
printf ("Permutatsioonid %s: \ ⁠n", str1);
findPermutations (str1, 0, suurus1-1);
char str2 [] = "AB";
int suurus2 = strlen (str2);
printf ("str2: %s \ ⁠n", str2);
printf ("Permutatsioonid %s: \ ⁠n", str2);
findPermutations (str2, 0, suurus2-1);
char str3 [] = "XYZ";
int suurus3 = strlen (str3);
printf ("str3: %s \ ⁠n", str3);
printf ("Permutatsioonid %s: \ ⁠n", str3);
findPermutations (str3, 0, suurus3-1);
tagasitulek 0;
}

Väljund:

str1: MUO
MUO lubadused:
MUO
MOU
UMO
UOM
OUM
OMU
str2: AB
AB lubadused:
AB
BA
str3: XYZ
XYZ -i lubadused:
XYZ
XZY
YXZ
YZX
ZYX
ZXY

Permutatsioonide printimine on lihtne

Selles artiklis olete õppinud, kuidas printida stringi kõik permutatsioonid mitmes programmeerimiskeeles. Kuigi need näidisprogrammid ei ole ainus viis permutatsioonide käsitlemiseks, on need suurepärane algus neile, kes ei ole neid oma koodis veel kasutanud.

JagaPiiksumaE -post
11 parimat veebipõhist arvutiprogrammeerimise kursust

Kasutades neid tasuta veebipõhiseid arvutiprogrammeerimise kursusi, võite saada suurepäraseks kodeerijaks ilma arvutiteaduse kraadita.

Loe edasi

Seotud teemad
  • Programmeerimine
  • Programmeerimine
  • C Programmeerimine
  • JavaScript
  • Python
Autori kohta
Yuvraj Chandra (58 artiklit avaldatud)

Yuvraj on arvutiteaduse bakalaureuseõppe üliõpilane Indias Delhi ülikoolis. Ta on kirglik Full Stacki veebiarenduse vastu. Kui ta ei kirjuta, uurib ta erinevate tehnoloogiate sügavust.

Veel Yuvraj Chandrast

Telli meie uudiskiri

Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!

Tellimiseks klõpsake siin