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:
- Porovnajte dĺžku oboch šnúrok.
- Ak dĺžka obidvoch strún nie je rovnaká, znamená to, že nemôžu byť jeden druhého. Vráťte sa teda nepravdivo.
- Ak je dĺžka oboch strún rovnaká, pokračujte ďalej.
- Zoraďte oba reťazce.
- Porovnajte oba zoradené reťazce.
- Ak sú oba zoradené reťazce rovnaké, znamená to, že sú to navzájom anagramy. Vrátiť teda pravdu.
- 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átorovChcete 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
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 Chandruprihlá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