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.
Kasutades neid tasuta veebipõhiseid arvutiprogrammeerimise kursusi, võite saada suurepäraseks kodeerijaks ilma arvutiteaduse kraadita.
Loe edasi
- Programmeerimine
- Programmeerimine
- C Programmeerimine
- JavaScript
- Python
![](/f/8a844dc1ccc92ead60a986f188f87f40.png)
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.
Telli meie uudiskiri
Liituge meie uudiskirjaga, et saada tehnilisi näpunäiteid, ülevaateid, tasuta e -raamatuid ja eksklusiivseid pakkumisi!
Tellimiseks klõpsake siin