Hai bisogno di stampare le permutazioni di una stringa? Ti mostreremo come fare in diverse lingue.
Una permutazione è una disposizione di oggetti in un ordine specifico. Puoi permutare una stringa di lunghezza n in n! modi.
In questo articolo imparerai come trovare tutte le permutazioni di una determinata stringa usando C++, Python, JavaScript e C.
Come funzionano le permutazioni?
Diciamo che hai lo spago str con "MUO" come valori di stringa. Ti è stato chiesto di mostrare le permutazioni della stringa. Ecco come procedere:
Esempio 1: Sia str = "MUO"
Le permutazioni di “MUO” sono:
- “MUO”
- "MOU"
- “UMO”
- “UOMO”
- “OUM”
- “OMU”
Notare l'ordine dei valori. Ecco un altro esempio:
Esempio 2: Sia str = "AB"
Tutte le permutazioni di "AB" sono:
- “AB”
- “BA”
Puoi anche stampare permutazioni duplicate se ci sono caratteri ripetuti nella stringa data. (ABBA, per esempio)
Ora che hai capito come funzionano le permutazioni, diamo un'occhiata a come puoi trovarle usando il tuo linguaggio di programmazione preferito.
Nota: Abbiamo progettato i seguenti esempi di codice per produrre permutazioni per tre stringhe: MUO, AB e XYZ. Se desideri utilizzare uno di questi codici, copialo e modifica queste stringhe per adattarle al tuo progetto.
Imparentato: Come convertire i caratteri di una stringa nel caso opposto con la programmazione
Programma C++ per stampare tutte le permutazioni di una stringa
Di seguito è riportato il programma C++ per stampare tutte le permutazioni di una stringa:
// Programma C++ per stampare tutto
// permutazioni di una stringa
#includere
usando lo spazio dei nomi std;
// Funzione per stampare le permutazioni di string
void findPermutations (string str, int leftIndex, int rightIndex)
{
if (indice sinistro == indice destro)
{
cout }
altro
{
for (int i = indice sinistro; i <= indice destro; io++)
{
scambiare (str[Indicesinistro], str[i]);
trovaPermutazioni (str, leftIndex+1, rightIndex);
//backtrack
scambiare (str[Indicesinistro], str[i]);
}
}
}
// Codice conducente
intero principale()
{
stringa str1 = "MUO";
int size1 = str1.size();
cout << "str1: " << str1 << endl;
cout << "Permutazioni di " << str1 << ":" << endl;
trovaPermutazioni (str1, 0, size1-1);
stringa str2 = "AB";
int size2 = str2.size();
cout << "str2: " << str2 << endl;
cout << "Permutazioni di " << str2 << ":" << endl;
trovaPermutazioni (str2, 0, size2-1);
stringa str3 = "XYZ";
int size3 = str3.size();
cout << "str3: " << str3 << endl;
cout << "Permutazioni di " << str3 << ":" << endl;
trovaPermutazioni (str3, 0, size3-1);
restituisce 0;
}
Produzione:
str1: MUO
Permutazioni di MUO:
MUO
MOU
UMO
UOMO
OUM
OMU
str2: AB
Permutazioni di AB:
AB
BA
str3: XYZ
Permutazioni di XYZ:
XYZ
XZY
YXZ
YZX
ZYX
ZXY
Imparentato: Come verificare se una stringa è simmetrica con la programmazione
Programma Python per stampare tutte le permutazioni di una stringa
Successivamente, è il codice Python per stampare tutte le permutazioni di una stringa:
# Programma Python per stampare tutto
# permutazioni di una stringa
def convertToString (Lista):
return ''.join (lista)
# Funzione per stampare le permutazioni di string
def findPermutations (s, leftIndex, rightIndex):
if leftIndex == rightIndex:
print (convertToString (s))
altro:
for i nell'intervallo (leftIndex, rightIndex+1):
s[indice sinistro], s[i] = s[i], s[indice sinistro]
trovaPermutazioni (s, leftIndex+1, rightIndex)
#backtrack
s[indice sinistro], s[i] = s[i], s[indice sinistro]
# Codice conducente
str1 = "MUO"
taglia1 = lente (str1)
s1 = lista (str1)
print("str1:", str1)
print("Permutazioni di", str1,":")
trovaPermutazioni (s1, 0, taglia1-1)
str2 = "AB"
taglia2 = lente (str2)
s2 = lista (str2)
print("str2:", str2)
print("Permutazioni di", str2,":")
trovaPermutazioni (s2, 0, taglia2-1)
str3 = "XYZ"
taglia3 = lente (str3)
s3 = lista (str3)
print("str3:", str3)
print("Permutazioni di", str3,":")
trovaPermutazioni (s3, 0, size3-1)
Produzione:
str1: MUO
Permutazioni di MUO:
MUO
MOU
UMO
UOMO
OUM
OMU
str2: AB
Permutazioni di AB:
AB
BA
str3: XYZ
Permutazioni di XYZ:
XYZ
XZY
YXZ
YZX
ZYX
ZXY
Imparentato: Come verificare se due stringhe sono anagrammi l'una dell'altra
Programma JavaScript per stampare tutte le permutazioni di una stringa
Ecco come si stampano le permutazioni in JavaScript:
// Programma JavaScript per stampare tutto
// permutazioni di una stringa
// Funzione per scambiare i caratteri della stringa
scambio di funzioni (str, indice sinistro, i) {
lasciare la temperatura;
let tempArray = str.split("");
temp = tempArray[Indicesinistro] ;
tempArray[leftIndex] = tempArray[i];
tempArray[i] = temp;
return (tempArray).join("");
}
// Funzione per stampare le permutazioni di string
funzione trovaPermutazioni (str, leftIndex, rightIndex) {
if (indice sinistro == indice destro) {
document.write (str + "
");
} altro {
for (let i = indice sinistro; i <= indice destro; io++) {
str = scambia (str, leftIndex, i);
trovaPermutazioni (str, leftIndex+1, rightIndex);
//backtrack
str = scambia (str, indice sinistro, i);;
}
}
}
// Codice conducente
var str1 = "MUO";
var dimensione1 = str1.lunghezza;
document.write("str1: " + str1 + "
");
document.write("Permutazioni di " + str1 + ":" + "
");
trovaPermutazioni (str1, 0, size1-1);
var str2 = "AB";
var size2 = str2.length;
document.write("str2: " + str2 + "
");
document.write("Permutazioni di " + str2 + ":" + "
");
trovaPermutazioni (str2, 0, size2-1);
var str3 = "XYZ";
var size3 = str3.length;
document.write("str3: " + str3 + "
");
document.write("Permutazioni di " + str3 + ":" + "
");
trovaPermutazioni (str3, 0, size3-1);
Produzione:
str1: MUO
Permutazioni di MUO:
MUO
MOU
UMO
UOMO
OUM
OMU
str2: AB
Permutazioni di AB:
AB
BA
str3: XYZ
Permutazioni di XYZ:
XYZ
XZY
YXZ
YZX
ZYX
ZXY
Imparentato: Come completare la sfida FizzBuzz in 5 linguaggi di programmazione
Programma C per stampare tutte le permutazioni di una stringa
Di seguito è riportato un programma C che stampa tutte le permutazioni di una stringa:
// Programma in C per stampare tutto
// permutazioni di una stringa
#includere
#includere
// Funzione per scambiare i caratteri della stringa
void swap (char str[], int leftIndex, int i)
{
char temp = str[indice sinistro];
str[indice sinistro] = str[i];
str[i] = temperatura;
}
// Funzione per stampare le permutazioni di string
void findPermutations (char str[], int leftIndex, int rightIndex)
{
if (indice sinistro == indice destro)
{
printf("%s \n", str);
}
altro
{
for (int i = indice sinistro; i <= indice destro; io++)
{
swap (str, leftIndex, i);
trovaPermutazioni (str, leftIndex+1, rightIndex);
//backtrack
swap (str, leftIndex, i);
}
}
}
// Codice conducente
intero principale()
{
char str1[] = "MUO";
int size1 = strlen (str1);
printf("str1: %s \n", str1);
printf("Permutazioni di %s: \n", str1);
trovaPermutazioni (str1, 0, size1-1);
char str2[] = "AB";
int size2 = strlen (str2);
printf("str2: %s \n", str2);
printf("Permutazioni di %s: \n", str2);
trovaPermutazioni (str2, 0, size2-1);
char str3[] = "XYZ";
int size3 = strlen (str3);
printf("str3: %s \n", str3);
printf("Permutazioni di %s: \n", str3);
trovaPermutazioni (str3, 0, size3-1);
restituisce 0;
}
Produzione:
str1: MUO
Permutazioni di MUO:
MUO
MOU
UMO
UOMO
OUM
OMU
str2: AB
Permutazioni di AB:
AB
BA
str3: XYZ
Permutazioni di XYZ:
XYZ
XZY
YXZ
YZX
ZYX
ZXY
Stampare le permutazioni è facile
In questo articolo, hai imparato come stampare tutte le permutazioni di una stringa in diversi linguaggi di programmazione. Sebbene questi programmi di esempio non siano l'unico modo per gestire le permutazioni, sono un ottimo inizio per coloro che sono nuovi nell'usarli nel loro codice.
Utilizzando questi corsi di programmazione informatica online gratuiti, puoi diventare un grande programmatore senza una laurea in informatica.
Leggi Avanti
- Programmazione
- Programmazione
- C Programmazione
- JavaScript
- Pitone

Yuvraj è uno studente universitario di Informatica presso l'Università di Delhi, in India. È appassionato di sviluppo Web Full Stack. Quando non scrive, esplora la profondità di diverse tecnologie.
Iscriviti alla nostra Newsletter
Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!
Clicca qui per iscriverti