Ako skontrolovať, či sú dve struny navzájom anagrammi

Ako skontrolovať, či sú dve struny navzájom anagrammi

Anagram je reťazec vytvorený preusporiadaním písmen iného reťazca. Kontrola, či sú dve struny navzájom anagrammi, môže znieť ťažko, ale je to len trochu zložité a klamlivo jednoduché. V tomto článku sa naučíte, ako pomocou C ++, Python a JavaScript skontrolovať, či sú dva reťazce navzájom anagramami.





Vyhlásenie o probléme

Dostanete dva reťazce s1 a s2, musíte skontrolovať, či sú tieto dva reťazce navzájom anagramami alebo nie.





Príklad 1 : Nech s1 = 'kreatívny' a s2 = 'reaktívny'.





Pretože druhý reťazec môže byť vytvorený preskupením písmen prvého reťazca a naopak, tieto dva reťazce sú navzájom anagramami.

Príklad 2 : Nech s1 = 'Peter Piper vybral kel nakladanej papriky' a s2 = 'klovan nakladanej papriky vybral Peter Piper'.



Pretože druhý reťazec nemožno vytvoriť preskupením písmen prvého reťazca a naopak, tieto dva reťazce nie sú navzájom anagrammi.

Postup na kontrolu, či sú dve šnúry navzájom anagrammi

Nasledujúcim spôsobom môžete skontrolovať, či sú tieto dva reťazce navzájom anagramami:





  1. Porovnajte dĺžku oboch šnúrok.
  2. Ak dĺžka obidvoch strún nie je rovnaká, znamená to, že nemôžu byť jeden druhého. Vráťte sa teda nepravdivo.
  3. Ak je dĺžka oboch strún rovnaká, pokračujte ďalej.
  4. Zoraďte oba reťazce.
  5. Porovnajte oba zoradené reťazce.
  6. Ak sú oba zoradené reťazce rovnaké, znamená to, že sú to navzájom anagramy. Vrátiť teda pravdu.
  7. Ak sú oba zoradené reťazce odlišné, znamená to, že nie sú navzájom anagramami. Vráťte sa teda nepravdivo.

Súvisiace: Ako skontrolovať, či je reťazec palindróm

Program C ++ na kontrolu, či sú dva reťazce vzájomne anagrammi

Nasleduje program C ++, ktorý má skontrolovať, či sú dva reťazce navzájom anagramami:





#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;
}

Výkon:

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

Súvisiace: Ako počítať výskyty daného znaku v reťazci

Program Python na kontrolu, či sú dva reťazce navzájom anagrammi

Nasleduje program Python, ktorý má skontrolovať, či sú dva reťazce navzájom anagramami:

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')

Výkon:

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

Súvisiace články: Ako nájsť samohlásky, spoluhlásky, číslice a špeciálne znaky v reťazci

V JavaScripte skontrolujte, či sú dva reťazce navzájom prešmykami

Nasleduje program JavaScript, ktorý má skontrolovať, či sú dva reťazce vzájomne anagramy alebo nie:

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' + '
');
}

Výkon:

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

Súvisiace: Ako zistíte hodnotu znaku ASCII?

Na naučenie sa kódovať používajte správne zdroje

Ak chcete posilniť svoje kódovacie schopnosti, je dôležité naučiť sa nové koncepty a tráviť čas ich používaním. Jedným zo spôsobov, ako to dosiahnuť, sú programovacie aplikácie, ktoré vám pomôžu naučiť sa rôzne koncepty programovania a zároveň sa baviť.

zdieľam zdieľam Tweet E -mail 8 aplikácií, ktoré vám pomôžu naučiť sa kódovať k medzinárodnému dňu programátorov

Chcete zdokonaliť svoje kódovacie schopnosti? Tieto aplikácie a webové stránky vám pomôžu naučiť sa programovať vlastným tempom.

toto príslušenstvo nemusí byť podporované pre iPhone
Čítajte ďalej Súvisiace témy
  • Programovanie
  • JavaScript
  • Python
  • C Programovanie
O autorovi Yuvraj Chandra(60 publikovaných článkov)

Yuvraj je študentom informatiky na univerzite v Dillí v Indii. Je nadšený pre vývoj webových aplikácií Full Stack. Keď nepíše, skúma hĺbku rôznych technológií.

Viac od Yuvraja Chandru

prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu a získajte technické tipy, recenzie, bezplatné elektronické knihy a exkluzívne ponuky!

Kliknutím sem sa prihlásite na odber