di Yuvraj Chandra
CondividereTweetE-mail

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.

instagram viewer

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.

CondividereTweetE-mail
Gli 11 migliori siti per corsi di programmazione informatica online gratuiti

Utilizzando questi corsi di programmazione informatica online gratuiti, puoi diventare un grande programmatore senza una laurea in informatica.

Leggi Avanti

Argomenti correlati
  • Programmazione
  • Programmazione
  • C Programmazione
  • JavaScript
  • Pitone
Circa l'autore
Yuvraj Chandra (58 articoli pubblicati)

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.

Altro da Yuvraj Chandra

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti