Kuinka tarkistaa, ovatko kaksi merkkijonoa toistensa grammoja

Kuinka tarkistaa, ovatko kaksi merkkijonoa toistensa grammoja

Anagrammi on merkkijono, joka muodostetaan järjestämällä toisen merkkijonon kirjaimet uudelleen. Sen tarkistaminen, ovatko kaksi merkkijonoa toistensa anagrammeja, saattaa kuulostaa vaikealta, mutta se on vain hieman hankala ja petollisesti suoraviivainen. Tässä artikkelissa opit tarkistamaan, ovatko kaksi merkkijonoa toistensa anagrammeja C ++: n, Pythonin ja JavaScriptin avulla.





Ongelmailmoitus

Sinulle annetaan kaksi merkkijonoa s1 ja s2, sinun on tarkistettava, ovatko nämä kaksi merkkijonoa toistensa anagrammeja vai eivät.





Esimerkki 1 : Olkoon s1 = 'luova' ja s2 = 'reaktiivinen'.





Koska toinen merkkijono voidaan muodostaa järjestämällä ensimmäisen merkkijonon kirjaimet uudelleen ja päinvastoin, nämä kaksi merkkijonoa ovat toistensa anagrammeja.

Esimerkki 2 : Olkoon s1 = 'Peter Piper poimii suolakurkkua' ja s2 = 'Peck Peter Piper poimii suolakurkkua'.



Koska toista merkkijonoa ei voida muodostaa järjestämällä ensimmäisen merkkijonon kirjaimet uudelleen ja päinvastoin, nämä kaksi merkkijonoa eivät ole toistensa anagrammeja.

Prosessi sen tarkistamiseksi, ovatko kaksi merkkijonoa toistensa grammoja

Voit seurata alla olevaa lähestymistapaa tarkistaaksesi, ovatko kaksi merkkijonoa toistensa anagrammeja:





  1. Vertaa molempien merkkijonojen pituutta.
  2. Jos molempien merkkijonojen pituus ei ole sama, ne eivät voi olla toistensa anagrammeja. Palauta siis epätosi.
  3. Jos molempien merkkijonojen pituus on sama, jatka eteenpäin.
  4. Lajittele molemmat merkkijonot.
  5. Vertaa molempia lajiteltuja merkkijonoja.
  6. Jos molemmat lajitellut merkkijonot ovat samat, se tarkoittaa, että ne ovat toistensa anagrammeja. Palauta siis tosi.
  7. Jos molemmat lajitellut merkkijonot ovat erilaisia, se tarkoittaa, että ne eivät ole toistensa anagrammeja. Palauta siis epätosi.

Aiheeseen liittyviä: Kuinka tarkistaa, onko merkkijono palindromi

C ++ -ohjelma tarkistaa, ovatko kaksi merkkijonoa toistensa grammoja

Alla on C ++ -ohjelma, joka tarkistaa, ovatko kaksi merkkijonoa toistensa anagrammeja vai eivät:





#include
using namespace std;
bool checkAnagrams(string s1, string s2)
{
int size1 = s1.length();
int size2 = s2.length();
// If the length of both strings are not the same,
// it means they can't be anagrams of each other.
// Thus, return false.
if (size1 != size2)
{
return false;
}
sort(s1.begin(), s1.end());
sort(s2.begin(), s2.end());
for (int i = 0; i {
if (s1[i] != s2[i])
{
return false;
}
}
return true;
}
int main()
{
string s1 = 'listen';
string s2 = 'silent';
cout << 'String 1: ' << s1 << endl;
cout << 'String 2: ' << s2 << endl;
if(checkAnagrams(s1, s2))
{
cout << 'Yes, the two strings are anagrams of each other' << endl;
}
else
{
cout << 'No, the two strings are not anagrams of each other' << endl;
}
string s3 = 'Welcome to MUO';
string s4 = 'MUO to Welcome';
cout << 'String 3: ' << s3 << endl;
cout << 'String 4: ' << s4 << endl;
if(checkAnagrams(s3, s4))
{
cout << 'Yes, the two strings are anagrams of each other' << endl;
}
else
{
cout << 'No, the two strings are not anagrams of each other' << endl;
}
string s5 = 'Peter Piper picked a peck of pickled peppers';
string s6 = 'A peck of pickled peppers Peter Piper picked';
cout << 'String 5: ' << s5 << endl;
cout << 'String 6: ' << s6 << endl;
if(checkAnagrams(s5, s6))
{
cout << 'Yes, the two strings are anagrams of each other' << endl;
}
else
{
cout << 'No, the two strings are not anagrams of each other' << endl;
}
string s7 = 'She sells seashells by the seashore';
string s8 = 'seashells by the seashore';
cout << 'String 7: ' << s7 << endl;
cout << 'String 8: ' << s8 << endl;
if(checkAnagrams(s7, s8))
{
cout << 'Yes, the two strings are anagrams of each other' << endl;
}
else
{
cout << 'No, the two strings are not anagrams of each other' << endl;
}
string s9 = 'creative';
string s10 = 'reactive';
cout << 'String 9: ' << s9 << endl;
cout << 'String 10: ' << s10 << endl;
if(checkAnagrams(s9, s10))
{
cout << 'Yes, the two strings are anagrams of each other' << endl;
}
else
{
cout << 'No, the two strings are not anagrams of each other' << endl;
}
return 0;
}

Lähtö:

String 1: listen
String 2: silent
Yes, the two strings are anagrams of each other
String 3: Welcome to MUO
String 4: MUO to Welcome
Yes, the two strings are anagrams of each other
String 5: Peter Piper picked a peck of pickled peppers
String 6: A peck of pickled peppers Peter Piper picked
No, the two strings are not anagrams of each other
String 7: She sells seashells by the seashore
String 8: seashells by the seashore
No, the two strings are not anagrams of each other
String 9: creative
String 10: reactive
Yes, the two strings are anagrams of each other

Aiheeseen liittyviä: Kuinka laskea tietyn merkin esiintymät merkkijonossa

Python -ohjelma tarkistaa, ovatko kaksi merkkijonoa toistensa grammoja

Alla on Python -ohjelma, joka tarkistaa, ovatko kaksi merkkijonoa toistensa anagrammeja vai eivät:

def checkAnagrams(s1, s2):
size1 = len(s1)
size2 = len(s2)
# If the length of both strings are not the same,
# it means they can't be anagrams of each other.
# Thus, return false.
if size1 != size2:
return 0
s1 = sorted(s1)
s2 = sorted(s2)
for i in range(0, size1):
if s1[i] != s2[i]:
return False
return True

s1 = 'listen'
s2 = 'silent'
print('String 1: ', s1)
print('String 2: ', s2)
if(checkAnagrams(s1, s2)):
print('Yes, the two strings are anagrams of each other')
else:
print('No, the two strings are not anagrams of each other')
s3 = 'Welcome to MUO'
s4 = 'MUO to Welcome'
print('String 3: ', s3)
print('String 4: ', s4)
if(checkAnagrams(s3, s4)):
print('Yes, the two strings are anagrams of each other')
else:
print('No, the two strings are not anagrams of each other')
s5 = 'Peter Piper picked a peck of pickled peppers'
s6 = 'A peck of pickled peppers Peter Piper picked'
print('String 5: ', s5)
print('String 6: ', s6)
if(checkAnagrams(s5, s6)):
print('Yes, the two strings are anagrams of each other')
else:
print('No, the two strings are not anagrams of each other')
s7 = 'She sells seashells by the seashore'
s8 = 'seashells by the seashore'
print('String 7: ', s7)
print('String 8: ', s8)
if(checkAnagrams(s7, s8)):
print('Yes, the two strings are anagrams of each other')
else:
print('No, the two strings are not anagrams of each other')
s9 = 'creative'
s10 = 'reactive'
print('String 9: ', s9)
print('String 10: ', s10)
if(checkAnagrams(s9, s10)):
print('Yes, the two strings are anagrams of each other')
else:
print('No, the two strings are not anagrams of each other')

Lähtö:

String 1: listen
String 2: silent
Yes, the two strings are anagrams of each other
String 3: Welcome to MUO
String 4: MUO to Welcome
Yes, the two strings are anagrams of each other
String 5: Peter Piper picked a peck of pickled peppers
String 6: A peck of pickled peppers Peter Piper picked
No, the two strings are not anagrams of each other
String 7: She sells seashells by the seashore
String 8: seashells by the seashore
No, the two strings are not anagrams of each other
String 9: creative
String 10: reactive
Yes, the two strings are anagrams of each other

Aiheeseen liittyviä: Kuinka löytää vokaaleja, konsonantteja, numeroita ja erikoismerkkejä merkkijonosta

Tarkista, ovatko kaksi merkkijonoa toistensa anagrammeja JavaScriptissä

Alla on JavaScript -ohjelma, joka tarkistaa, ovatko kaksi merkkijonoa toistensa anagrammeja vai eivät:

function checkAnagrams(s1, s2) {
let size1 = s1.length;
let size2 = s2.length;
// If the length of both strings are not the same,
// it means they can't be anagrams of each other.
// Thus, return false.
if (size1 != size2)
{
return false;
}
s1.sort();
s2.sort();
for (let i = 0; i {
if (s1[i] != s2[i])
{
return false;
}
}
return true;
}

var s1 = 'listen';
var s2 = 'silent';
document.write('String 1: ' + s1 + '
');
document.write('String 2: ' + s2 + '
');
if(checkAnagrams(s1.split(''), s2.split(''))) {
document.write('Yes, the two strings are anagrams of each other' + '
');
} else {
document.write('No, the two strings are not anagrams of each other' + '
');
}
var s3 = 'Welcome to MUO';
var s4 = 'MUO to Welcome';
document.write('String 3: ' + s3 + '
');
document.write('String 4: ' + s4 + '
');
if(checkAnagrams(s3.split(''), s4.split(''))) {
document.write('Yes, the two strings are anagrams of each other' + '
');
} else {
document.write('No, the two strings are not anagrams of each other' + '
');
}
var s5 = 'Peter Piper picked a peck of pickled peppers';
var s6 = 'A peck of pickled peppers Peter Piper picked';
document.write('String 5: ' + s5 + '
');
document.write('String 6: ' + s6 + '
');
if(checkAnagrams(s5.split(''), s6.split(''))) {
document.write('Yes, the two strings are anagrams of each other' + '
');
} else {
document.write('No, the two strings are not anagrams of each other' + '
');
}
var s7 = 'She sells seashells by the seashore';
var s8 = 'seashells by the seashore';
document.write('String 7: ' + s7 + '
');
document.write('String 8: ' + s8 + '
');
if(checkAnagrams(s7.split(''), s8.split(''))) {
document.write('Yes, the two strings are anagrams of each other' + '
');
} else {
document.write('No, the two strings are not anagrams of each other' + '
');
}
var s9 = 'creative';
var s10 = 'reactive';
document.write('String 9: ' + s9 + '
');
document.write('String 10: ' + s10 + '
');
if(checkAnagrams(s9.split(''), s10.split(''))) {
document.write('Yes, the two strings are anagrams of each other' + '
');
} else {
document.write('No, the two strings are not anagrams of each other' + '
');
}

Lähtö:

String 1: listen
String 2: silent
Yes, the two strings are anagrams of each other
String 3: Welcome to MUO
String 4: MUO to Welcome
Yes, the two strings are anagrams of each other
String 5: Peter Piper picked a peck of pickled peppers
String 6: A peck of pickled peppers Peter Piper picked
No, the two strings are not anagrams of each other
String 7: She sells seashells by the seashore
String 8: seashells by the seashore
No, the two strings are not anagrams of each other
String 9: creative
String 10: reactive
Yes, the two strings are anagrams of each other

Aiheeseen liittyviä: Kuinka löydät hahmon ASCII -arvon?

Käytä oikeita resursseja koodin oppimiseen

Jos haluat vahvistaa koodaustaitojasi, on tärkeää oppia uusia käsitteitä ja käyttää aikaa niiden käyttämiseen. Yksi tapa tehdä tämä on ohjelmointisovelluksilla, jotka auttavat sinua oppimaan erilaisia ​​ohjelmointikonsepteja pitäen samalla hauskaa.

Jaa Jaa Tweet Sähköposti 8 sovellusta, jotka auttavat sinua oppimaan koodaamaan kansainvälistä ohjelmoijapäivää

Haluatko kehittää koodaustaitojasi? Nämä sovellukset ja verkkosivustot auttavat sinua oppimaan ohjelmointia omaan tahtiisi.

tätä lisävarustetta ei ehkä tueta iphone
Lue seuraava Liittyvät aiheet
  • Ohjelmointi
  • JavaScript
  • Python
  • C Ohjelmointi
Kirjailijasta Yuvraj Chandra(60 artikkelia julkaistu)

Yuvraj on tietojenkäsittelytieteen perusopiskelija Delhin yliopistossa Intiassa. Hän on intohimoinen Full Stack Web -kehityksestä. Kun hän ei kirjoita, hän tutkii eri tekniikoiden syvyyttä.

Lisää Yuvraj Chandralta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi