Jak sprawdzić, czy dwa ciągi są anagramami siebie nawzajem?

Jak sprawdzić, czy dwa ciągi są anagramami siebie nawzajem?

Anagram to ciąg utworzony przez zmianę kolejności liter innego ciągu. Sprawdzenie, czy dwie struny są anagramami siebie nawzajem, może wydawać się trudne, ale jest to tylko trochę trudne i zwodniczo proste. W tym artykule dowiesz się, jak za pomocą C++, Pythona i JavaScriptu sprawdzić, czy dwa łańcuchy są anagramami siebie nawzajem.





Stwierdzenie problemu

Dostajesz dwa ciągi s1 i s2, musisz sprawdzić, czy te dwa ciągi są anagramami siebie, czy nie.





Przykład 1 : Niech s1 = „kreatywny” i s2 = „reaktywny”.





Ponieważ drugi ciąg może być utworzony przez przestawienie liter pierwszego ciągu i na odwrót, zatem oba ciągi są anagramami siebie nawzajem.

Przykład 2 : Niech s1 = 'Peter Piper zerwał dziobanie marynowanej papryki' i s2 = 'Peter Piper zerwał dziobanie marynowanej papryki'.



Ponieważ drugi ciąg nie może być utworzony przez zmianę kolejności liter pierwszego ciągu i na odwrót, zatem te dwa ciągi nie są anagramami siebie nawzajem.

Proces sprawdzania, czy dwa ciągi są anagramami siebie nawzajem

Możesz zastosować poniższe podejście, aby sprawdzić, czy te dwa ciągi są anagramami siebie nawzajem:





  1. Porównaj długość obu ciągów.
  2. Jeśli długość obu ciągów nie jest taka sama, oznacza to, że nie mogą być wzajemnie anagramami. W ten sposób zwróć fałsz.
  3. Jeśli długość obu ciągów jest taka sama, przejdź dalej.
  4. Posortuj oba ciągi.
  5. Porównaj oba posortowane ciągi.
  6. Jeśli oba posortowane ciągi są takie same, oznacza to, że są anagramami siebie nawzajem. W ten sposób zwróć prawdę.
  7. Jeśli oba posortowane ciągi są różne, oznacza to, że nie są anagramami siebie nawzajem. W ten sposób zwróć fałsz.

Związane z: Jak sprawdzić, czy struna jest palindromem?

Program C++ do sprawdzania, czy dwa ciągi znaków są anagramami siebie nawzajem

Poniżej znajduje się program C++, który sprawdza, czy dwa łańcuchy są anagramami siebie nawzajem, czy nie:





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

Wyjście:

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

Powiązane: Jak policzyć wystąpienia danego znaku w ciągu?

Program Pythona do sprawdzania, czy dwa ciągi są anagramami siebie nawzajem

Poniżej znajduje się program Pythona do sprawdzania, czy dwa łańcuchy są anagramami siebie nawzajem, czy nie:

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

Wyjście:

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

Powiązane: Jak znaleźć samogłoski, spółgłoski, cyfry i znaki specjalne w ciągu?

Sprawdź, czy dwa ciągi są anagramami siebie w JavaScript

Poniżej znajduje się program JavaScript, który sprawdza, czy dwa łańcuchy są anagramami siebie nawzajem, czy 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' + '
');
}

Wyjście:

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

Związane z: Jak znaleźć wartość ASCII postaci?

Skorzystaj z odpowiednich zasobów, aby nauczyć się kodować

Jeśli chcesz wzmocnić swoje umiejętności kodowania, ważne jest, aby nauczyć się nowych pojęć i poświęcić czas na ich używanie. Jednym ze sposobów, aby to zrobić, są aplikacje programistyczne, które pomogą Ci nauczyć się różnych koncepcji programowania, jednocześnie dobrze się bawiąc.

Udział Udział Ćwierkać E-mail 8 aplikacji, które pomogą Ci nauczyć się kodować na Międzynarodowy Dzień Programisty

Chcesz odświeżyć swoje umiejętności kodowania? Te aplikacje i strony internetowe pomogą Ci nauczyć się programowania we własnym tempie.

jak czytać dysk twardy Mac w systemie Windows
Czytaj dalej Powiązane tematy
  • Programowanie
  • JavaScript
  • Pyton
  • Programowanie C
O autorze Yuvraj Chandra(60 opublikowanych artykułów)

Yuvraj jest studentem informatyki na Uniwersytecie w Delhi w Indiach. Jest pasjonatem Full Stack Web Development. Kiedy nie pisze, bada głębię różnych technologii.

Więcej od Yuvraja Chandra

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować