di Yuvraj Chandra
Condividere
E-mail

Confrontare se due stringhe di testo sono anagrammi è un ottimo compito di risoluzione dei problemi per migliorare le capacità di programmazione.

Un anagramma è una stringa formata riordinando le lettere di una stringa diversa. Controllare se due stringhe sono anagrammi l'una dell'altra potrebbe sembrare difficile, ma è solo un po' complicato e ingannevolmente semplice. In questo articolo imparerai come verificare se due stringhe sono anagrammi l'una dell'altra usando C++, Python e JavaScript.

Dichiarazione problema

Ti vengono fornite due stringhe s1 e s2, devi verificare se le due stringhe sono anagrammi l'una dell'altra o meno.

Esempio 1: Sia s1 = "creativo" e s2 = "reattivo".

Poiché la seconda stringa può essere formata riordinando le lettere della prima stringa e viceversa, quindi le due stringhe sono anagrammi l'una dell'altra.

Esempio 2: Sia s1 = "Peter Piper ha preso un bacetto di peperoni sott'aceto" e s2 = "Un bacetto di peperoni sott'aceto ha raccolto Peter Piper".

instagram viewer

Poiché la seconda stringa non può essere formata riordinando le lettere della prima stringa e viceversa, quindi le due stringhe non sono anagrammi l'una dell'altra.

Processo per verificare se due stringhe sono anagrammi l'una dell'altra

Puoi seguire l'approccio seguente per verificare se le due stringhe sono anagrammi l'una dell'altra:

  1. Confronta la lunghezza di entrambe le stringhe.
  2. Se la lunghezza di entrambe le stringhe non è la stessa, significa che non possono essere anagrammi l'una dell'altra. Quindi, restituire false.
  3. Se la lunghezza di entrambe le stringhe è la stessa, procedi ulteriormente.
  4. Ordina entrambe le stringhe.
  5. Confronta entrambe le stringhe ordinate.
  6. Se entrambe le stringhe ordinate sono uguali, significa che sono anagrammi l'una dell'altra. Quindi, ritorna vero.
  7. Se entrambe le stringhe ordinate sono diverse, significa che non sono anagrammi l'una dell'altra. Quindi, restituire false.

Relazionato: Come verificare se una stringa è un palindromo

Programma C++ per verificare se due stringhe sono anagrammi l'una dell'altra

Di seguito è riportato il programma C++ per verificare se due stringhe sono anagrammi l'una dell'altra o meno:

#includere 
usando lo spazio dei nomi std;
bool checkAnagrammi (stringa s1, stringa s2)
{
int taglia1 = s1.lunghezza();
int dimensione2 = s2.lunghezza();
// Se la lunghezza di entrambe le stringhe non è la stessa,
// significa che non possono essere anagrammi l'uno dell'altro.
// Quindi, restituisce false.
if (taglia1 != taglia2)
{
restituire falso;
}
sort (s1.begin(), s1.end());
sort (s2.begin(), s2.end());
per (int i = 0; io < taglia1; io++)
{
se (s1[i] != s2[i])
{
restituire falso;
}
}
restituire vero;
}
intero principale()
{
stringa s1 = "ascolta";
stringa s2 = "silenzioso";
cout << "Stringa 1: " << s1 << endl;
cout << "Stringa 2: " << s2 << endl;
if (checkAnagrams (s1, s2))
{
cout << "Si, le due stringhe sono anagrammi l'una dell'altra" << endl;
}
altro
{
cout << "No, le due stringhe non sono anagrammi l'una dell'altra" << endl;
}
string s3 = "Benvenuto in MUO";
string s4 = "MUO a Benvenuto";
cout << "Stringa 3: " << s3 << endl;
cout << "Stringa 4: " << s4 << endl;
if (checkAnagrams (s3, s4))
{
cout << "Si, le due stringhe sono anagrammi l'una dell'altra" << endl;
}
altro
{
cout << "No, le due stringhe non sono anagrammi l'una dell'altra" << endl;
}
string s5 = "Peter Piper ha preso un bacetto di peperoni sott'aceto";
string s6 = "Un bacetto di peperoni sott'aceto raccolti da Peter Piper";
cout << "Stringa 5: " << s5 << endl;
cout << "Stringa 6: " << s6 << endl;
if (checkAnagrams (s5, s6))
{
cout << "Si, le due stringhe sono anagrammi l'una dell'altra" << endl;
}
altro
{
cout << "No, le due stringhe non sono anagrammi l'una dell'altra" << endl;
}
string s7 = "Vende conchiglie in riva al mare";
string s8 = "conchiglie in riva al mare";
cout << "Stringa 7: " << s7 << endl;
cout << "Stringa 8: " << s8 << endl;
if (checkAnagrams (s7, s8))
{
cout << "Si, le due stringhe sono anagrammi l'una dell'altra" << endl;
}
altro
{
cout << "No, le due stringhe non sono anagrammi l'una dell'altra" << endl;
}
stringa s9 = "creativo";
stringa s10 = "reattivo";
cout << "Stringa 9: " << s9 << endl;
cout << "Stringa 10: " << s10 << endl;
if (checkAnagrams (s9, s10))
{
cout << "Si, le due stringhe sono anagrammi l'una dell'altra" << endl;
}
altro
{
cout << "No, le due stringhe non sono anagrammi l'una dell'altra" << endl;
}
restituisce 0;
}

Produzione:

Stringa 1: ascolta
Stringa 2: silenzioso
Sì, le due stringhe sono anagrammi l'una dell'altra
Stringa 3: Benvenuto in MUO
Stringa 4: MUO per dare il benvenuto
Sì, le due stringhe sono anagrammi l'una dell'altra
Stringa 5: Peter Piper ha preso un bacetto di peperoni sott'aceto
Stringa 6: Un bacetto di peperoni sott'aceto raccolti da Peter Piper
No, le due stringhe non sono anagrammi l'una dell'altra
Stringa 7: vende conchiglie in riva al mare
Stringa 8: conchiglie in riva al mare
No, le due stringhe non sono anagrammi l'una dell'altra
Stringa 9: creativo
Stringa 10: reattiva
Sì, le due stringhe sono anagrammi l'una dell'altra

Relazionato: Come contare le occorrenze di un dato carattere in una stringa

Programma Python per verificare se due stringhe sono anagrammi l'una dell'altra

Di seguito è riportato il programma Python per verificare se due stringhe sono anagrammi l'una dell'altra o meno:

def checkAnagrammi (s1, s2):
taglia1 = lente (s1)
taglia2 = lente (s2)
# Se la lunghezza di entrambe le stringhe non è la stessa,
# significa che non possono essere anagrammi l'uno dell'altro.
# Quindi, restituisce false.
se taglia1 != taglia2:
ritorno 0
s1 = ordinato (s1)
s2 = ordinato (s2)
per i nell'intervallo (0, dimensione1):
se s1[i] != s2[i]:
ritorno Falso
ritorna Vero
s1 = "ascolta"
s2 = "silenzioso"
print("Stringa 1: ", s1)
print("Stringa 2: ", s2)
if (checkAnagrams (s1, s2)):
print("Si, le due stringhe sono anagrammi l'una dell'altra")
altro:
print("No, le due stringhe non sono anagrammi l'una dell'altra")
s3 = "Benvenuto al MUO"
s4 = "MUO per dare il benvenuto"
print("Stringa 3: ", s3)
print("Stringa 4: ", s4)
if (checkAnagrams (s3, s4)):
print("Si, le due stringhe sono anagrammi l'una dell'altra")
altro:
print("No, le due stringhe non sono anagrammi l'una dell'altra")
s5 = "Peter Piper ha preso un bacetto di peperoni sott'aceto"
s6 = "Un bacetto di peperoni sott'aceto raccolti da Peter Piper"
print("Stringa 5: ", s5)
print("Stringa 6: ", s6)
if (checkAnagrams (s5, s6)):
print("Si, le due stringhe sono anagrammi l'una dell'altra")
altro:
print("No, le due stringhe non sono anagrammi l'una dell'altra")
s7 = "Vende conchiglie in riva al mare"
s8 = "conchiglie in riva al mare"
print("Stringa 7: ", s7)
print("Stringa 8: ", s8)
if (checkAnagrams (s7, s8)):
print("Si, le due stringhe sono anagrammi l'una dell'altra")
altro:
print("No, le due stringhe non sono anagrammi l'una dell'altra")
s9 = "creativo"
s10 = "reattivo"
print("Stringa 9: ", s9)
print("Stringa 10: ", s10)
if (checkAnagrams (s9, s10)):
print("Si, le due stringhe sono anagrammi l'una dell'altra")
altro:
print("No, le due stringhe non sono anagrammi l'una dell'altra")

Produzione:

Stringa 1: ascolta
Stringa 2: silenzioso
Sì, le due stringhe sono anagrammi l'una dell'altra
Stringa 3: Benvenuto in MUO
Stringa 4: MUO per dare il benvenuto
Sì, le due stringhe sono anagrammi l'una dell'altra
Stringa 5: Peter Piper ha preso un bacetto di peperoni sott'aceto
Stringa 6: Un bacetto di peperoni sott'aceto raccolti da Peter Piper
No, le due stringhe non sono anagrammi l'una dell'altra
Stringa 7: vende conchiglie in riva al mare
Stringa 8: conchiglie in riva al mare
No, le due stringhe non sono anagrammi l'una dell'altra
Stringa 9: creativo
Stringa 10: reattiva
Sì, le due stringhe sono anagrammi l'una dell'altra

Relazionato: Come trovare vocali, consonanti, cifre e caratteri speciali in una stringa

Controlla se due stringhe sono anagrammi l'una dell'altra in JavaScript

Di seguito è riportato il programma JavaScript per verificare se due stringhe sono anagrammi l'una dell'altra o meno:

controllo funzioneAnagrammi (s1, s2) {
let size1 = s1.length;
let size2 = s2.length;
// Se la lunghezza di entrambe le stringhe non è la stessa,
// significa che non possono essere anagrammi l'uno dell'altro.
// Quindi, restituisce false.
if (taglia1 != taglia2)
{
restituire falso;
}
s1.sort();
s2.sort();
per (lascia i = 0; io < taglia1; io++)
{
se (s1[i] != s2[i])
{
restituire falso;
}
}
restituire vero;
}
var s1 = "ascolta";
var s2 = "silenzioso";
document.write("Stringa 1: " + s1 + "
");
document.write("Stringa 2: " + s2 + "
");
if (checkAnagrams (s1.split(""), s2.split(""))) {
document.write("Sì, le due stringhe sono anagrammi l'una dell'altra" + "
");
} altro {
document.write("No, le due stringhe non sono anagrammi l'una dell'altra" + "
");
}
var s3 = "Benvenuto in MUO";
var s4 = "MUO per dare il benvenuto";
document.write("Stringa 3: " + s3 + "
");
document.write("Stringa 4: " + s4 + "
");
if (checkAnagrams (s3.split(""), s4.split(""))) {
document.write("Sì, le due stringhe sono anagrammi l'una dell'altra" + "
");
} altro {
document.write("No, le due stringhe non sono anagrammi l'una dell'altra" + "
");
}
var s5 = "Peter Piper ha preso un bacetto di peperoni sottaceto";
var s6 = "Un bacetto di peperoni sott'aceto raccolti da Peter Piper";
document.write("Stringa 5: " + s5 + "
");
document.write("Stringa 6: " + s6 + "
");
if (checkAnagrams (s5.split(""), s6.split(""))) {
document.write("Sì, le due stringhe sono anagrammi l'una dell'altra" + "
");
} altro {
document.write("No, le due stringhe non sono anagrammi l'una dell'altra" + "
");
}
var s7 = "Vende conchiglie in riva al mare";
var s8 = "conchiglie in riva al mare";
document.write("Stringa 7: " + s7 + "
");
document.write("Stringa 8: " + s8 + "
");
if (checkAnagrams (s7.split(""), s8.split(""))) {
document.write("Sì, le due stringhe sono anagrammi l'una dell'altra" + "
");
} altro {
document.write("No, le due stringhe non sono anagrammi l'una dell'altra" + "
");
}
var s9 = "creativo";
var s10 = "reattivo";
document.write("Stringa 9: " + s9 + "
");
document.write("Stringa 10: " + s10 + "
");
if (checkAnagrams (s9.split(""), s10.split(""))) {
document.write("Sì, le due stringhe sono anagrammi l'una dell'altra" + "
");
} altro {
document.write("No, le due stringhe non sono anagrammi l'una dell'altra" + "
");
}

Produzione:

Stringa 1: ascolta
Stringa 2: silenzioso
Sì, le due stringhe sono anagrammi l'una dell'altra
Stringa 3: Benvenuto in MUO
Stringa 4: MUO per dare il benvenuto
Sì, le due stringhe sono anagrammi l'una dell'altra
Stringa 5: Peter Piper ha preso un bacetto di peperoni sott'aceto
Stringa 6: Un bacetto di peperoni sott'aceto raccolti da Peter Piper
No, le due stringhe non sono anagrammi l'una dell'altra
Stringa 7: vende conchiglie in riva al mare
Stringa 8: conchiglie in riva al mare
No, le due stringhe non sono anagrammi l'una dell'altra
Stringa 9: creativo
Stringa 10: reattiva
Sì, le due stringhe sono anagrammi l'una dell'altra

Relazionato: Come si trova il valore ASCII di un carattere?

Usa le risorse giuste per imparare a programmare

Se stai cercando di consolidare le tue capacità di programmazione, è importante apprendere nuovi concetti e dedicare del tempo a utilizzarli. Un modo per farlo è con le app di programmazione, che ti aiuteranno ad apprendere diversi concetti di programmazione divertendoti allo stesso tempo.

Condividere
E-mail
8 app per aiutarti a imparare a programmare per la Giornata internazionale dei programmatori

Vuoi rispolverare le tue abilità di programmazione? Queste app e questi siti Web ti aiuteranno a imparare a programmare al tuo ritmo.

Leggi Avanti

Argomenti correlati
  • Programmazione
  • JavaScript
  • Pitone
  • C Programmazione
Circa l'autore
Yuvraj Chandra (43 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 suggerimenti tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti