Как проверить, являются ли две строки анаграммами друг друга

Анаграмма – это строка, образованная перестановкой букв другой строки. Проверка того, являются ли две струны анаграммами друг друга, может показаться трудным, но это лишь немного сложно и обманчиво просто. В этой статье вы узнаете, как проверить, являются ли две строки анаграммами друг друга, используя C ++, Python и JavaScript.

Постановка задачи

Вам даны две строки s1 и s2, вам нужно проверить, являются ли эти две строки анаграммами друг друга или нет.

Пример 1. Пусть s1 = "creative" и s2 = "reactive".

Поскольку вторая строка может быть сформирована путем перестановки букв первой строки и наоборот, таким образом, две строки являются анаграммами друг друга.

Пример 2 : Пусть s1 = «Питер Пайпер сорвал кусок маринованного перца» и s2 = «Кусок маринованного перца, который сорвал Питер Пайпер».

Поскольку вторая строка не может быть сформирована путем перестановки букв первой строки и наоборот, две строки не являются анаграммами друг друга.

Процесс проверки, являются ли две строки анаграммами друг друга

Вы можете следовать приведенному ниже подходу, чтобы проверить, являются ли две строки анаграммами друг друга:

  1. Сравните длину обеих струн.
  2. Если длина обеих строк не одинакова, это означает, что они не могут быть анаграммами друг друга. Таким образом, верните false.
  3. Если длина обеих струн одинакова, продолжайте дальше.
  4. Отсортируйте обе строки.
  5. Сравните обе отсортированные строки.
  6. Если обе отсортированные строки одинаковы, это означает, что они являются анаграммами друг друга. Таким образом, верните истину.
  7. Если обе отсортированные строки различны, это означает, что они не анаграммы друг друга. Таким образом, верните false.

Связанный: Как проверить, является ли строка палиндромом

Программа на C ++ для проверки, являются ли две строки анаграммами друг друга

Ниже приведена программа на C ++, которая проверяет, являются ли две строки анаграммами друг друга или нет:

 #include <bits/stdc++.h>
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 < size1; 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;
}

Выход:

 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

Связанный: Как подсчитать вхождения данного символа в строку

Программа Python для проверки, являются ли две строки анаграммами друг друга

Ниже приведена программа Python, которая проверяет, являются ли две строки анаграммами друг друга или нет:

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

Выход:

 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

Связанный: Как найти гласные, согласные, цифры и специальные символы в строке

Проверьте, являются ли две строки анаграммами друг друга в JavaScript

Ниже приведена программа JavaScript, которая проверяет, являются ли две строки анаграммами друг друга или нет:

 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 < size1; i++)
{
if (s1[i] != s2[i])
{
return false;
}
}
return true;
}

var s1 = "listen";
var s2 = "silent";
document.write("String 1: " + s1 + "<br>");
document.write("String 2: " + s2 + "<br>");
if(checkAnagrams(s1.split(""), s2.split(""))) {
document.write("Yes, the two strings are anagrams of each other" + "<br>");
} else {
document.write("No, the two strings are not anagrams of each other" + "<br>");
}
var s3 = "Welcome to MUO";
var s4 = "MUO to Welcome";
document.write("String 3: " + s3 + "<br>");
document.write("String 4: " + s4 + "<br>");
if(checkAnagrams(s3.split(""), s4.split(""))) {
document.write("Yes, the two strings are anagrams of each other" + "<br>");
} else {
document.write("No, the two strings are not anagrams of each other" + "<br>");
}
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 + "<br>");
document.write("String 6: " + s6 + "<br>");
if(checkAnagrams(s5.split(""), s6.split(""))) {
document.write("Yes, the two strings are anagrams of each other" + "<br>");
} else {
document.write("No, the two strings are not anagrams of each other" + "<br>");
}
var s7 = "She sells seashells by the seashore";
var s8 = "seashells by the seashore";
document.write("String 7: " + s7 + "<br>");
document.write("String 8: " + s8 + "<br>");
if(checkAnagrams(s7.split(""), s8.split(""))) {
document.write("Yes, the two strings are anagrams of each other" + "<br>");
} else {
document.write("No, the two strings are not anagrams of each other" + "<br>");
}
var s9 = "creative";
var s10 = "reactive";
document.write("String 9: " + s9 + "<br>");
document.write("String 10: " + s10 + "<br>");
if(checkAnagrams(s9.split(""), s10.split(""))) {
document.write("Yes, the two strings are anagrams of each other" + "<br>");
} else {
document.write("No, the two strings are not anagrams of each other" + "<br>");
}

Выход:

 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

По теме: Как узнать значение ASCII символа?

Используйте правильные ресурсы, чтобы научиться программировать

Если вы хотите закрепить свои навыки программирования, важно изучить новые концепции и потратить время на их использование. Один из способов сделать это – использовать приложения для программирования, которые помогут вам изучить разные концепции программирования, одновременно получая удовольствие.