От Юврадж Чандра
Дял
електронна поща

Сравняването, ако два текстови низа са анаграми, е чудесна задача за решаване на проблеми за подобряване на уменията за програмиране.

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

Декларация за проблема

Дадени са ви два низа s1 и s2, трябва да проверите дали двата низа са анаграми един на друг или не.

Пример 1: Нека s1 = "творчески" и s2 = "реактивен".

Тъй като вторият низ може да се формира чрез пренареждане на буквите на първия низ и обратно, по този начин двата низа са анаграми един на друг.

Пример 2: Нека s1 = "Питър Пайпър е набрал чук ​​мариновани чушки" и s2 = "Кълва мариновани чушки Питър Пайпър е набрал".

Тъй като вторият низ не може да се формира чрез пренареждане на буквите на първия низ и обратно, следователно двата низа не са анаграми един на друг.

instagram viewer

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

Можете да следвате подхода по-долу, за да проверите дали двата низа са анаграми един на друг:

  1. Сравнете дължината на двата струни.
  2. Ако дължината на двата низа не е еднаква, това означава, че те не могат да бъдат анаграми един на друг. По този начин върнете false.
  3. Ако дължината на двата струни е еднаква, продължете по-нататък.
  4. Сортирайте и двата низа.
  5. Сравнете и двата сортирани низа.
  6. Ако и двата сортирани низа са еднакви, това означава, че те са анаграми един на друг. По този начин се върнете вярно.
  7. Ако и двата сортирани низа са различни, това означава, че те не са анаграми един на друг. По този начин върнете false.

Свързани: Как да проверите дали низът е палиндром

Програма C ++ за проверка дали два низа са анаграми един на друг

По-долу е програмата C ++ за проверка дали два низа са анаграми един на друг или не:

#include 
използване на пространство от имена std;
bool checkAnagrams (низ s1, низ s2)
{
int size1 = s1.length ();
int size2 = s2.length ();
// Ако дължината на двата низа не е еднаква,
// това означава, че те не могат да бъдат анаграми един на друг.
// По този начин върнете false.
ако (размер1! = размер2)
{
върнете false;
}
сортиране (s1.begin (), s1.end ());
сортиране (s2.begin (), s2.end ());
за (int i = 0; i {
ако (s1 [i]! = s2 [i])
{
върнете false;
}
}
връщане вярно;
}
int main ()
{
низ s1 = "слушам";
низ s2 = "безшумен";
cout << "String 1:" << s1 << endl;
cout << "String 2:" << s2 << endl;
if (checkAnagrams (s1, s2))
{
cout << "Да, двата низа са анаграми един на друг" << endl;
}
друго
{
cout << "Не, двата низа не са анаграми един на друг" << endl;
}
низ s3 = "Добре дошли в MUO";
низ s4 = "MUO за добре дошли";
cout << "String 3:" << s3 << endl;
cout << "String 4:" << s4 << endl;
if (checkAnagrams (s3, s4))
{
cout << "Да, двата низа са анаграми един на друг" << endl;
}
друго
{
cout << "Не, двата низа не са анаграми един на друг" << endl;
}
низ s5 = "Питър Пайпър взе кълва мариновани чушки";
низ s6 = "Кълва от мариновани чушки, набрани от Питър Пайпър";
cout << "String 5:" << s5 << endl;
cout << "String 6:" << s6 << endl;
if (checkAnagrams (s5, s6))
{
cout << "Да, двата низа са анаграми един на друг" << endl;
}
друго
{
cout << "Не, двата низа не са анаграми един на друг" << endl;
}
низ s7 = "Тя продава морски черупки край морския бряг";
низ s8 = "морски черупки край морския бряг";
cout << "String 7:" << s7 << endl;
cout << "Низ 8:" << s8 << endl;
if (checkAnagrams (s7, s8))
{
cout << "Да, двата низа са анаграми един на друг" << endl;
}
друго
{
cout << "Не, двата низа не са анаграми един на друг" << endl;
}
низ s9 = "творчески";
низ s10 = "реактивен";
cout << "String 9:" << s9 << endl;
cout << "String 10:" << s10 << endl;
if (checkAnagrams (s9, s10))
{
cout << "Да, двата низа са анаграми един на друг" << endl;
}
друго
{
cout << "Не, двата низа не са анаграми един на друг" << endl;
}
връщане 0;
}

Изход:

Струна 1: слушайте
Низ 2: безшумен
Да, двата струни са анаграми един на друг
Низ 3: Добре дошли в MUO
Струна 4: MUO за добре дошли
Да, двата струни са анаграми един на друг
Струна 5: Питър Пайпър откъсна кълна мариновани чушки
Низ 6: Кълва от мариновани чушки, които Питър Пайпър набра
Не, двата струна не са анаграми един на друг
Струна 7: Тя продава миди край морския бряг
Низ 8: миди от морския бряг
Не, двата струна не са анаграми един на друг
Низ 9: творчески
Низ 10: реактивен
Да, двата струни са анаграми един на друг

Свързани: Как да броим появите на даден герой в низ

Програма Python за проверка дали два низа са анаграми един на друг

По-долу е програмата Python за проверка дали два низа са анаграми един на друг или не:

def checkAnagrams (s1, s2):
size1 = len (s1)
size2 = len (s2)
# Ако дължината на двата низа не е еднаква,
# това означава, че те не могат да бъдат анаграми един на друг.
# По този начин върнете false.
ако размер1! = размер2:
връщане 0
s1 = сортирано (s1)
s2 = сортирано (s2)
за i в обхват (0, размер1):
ако s1 [i]! = s2 [i]:
връщане False
връщане Вярно
s1 = "слушай"
s2 = "мълчалив"
print ("String 1:", s1)
print ("String 2:", s2)
if (checkAnagrams (s1, s2)):
print ("Да, двата низа са анаграми един на друг")
друго:
print ("Не, двата низа не са анаграми един на друг")
s3 = "Добре дошли в MUO"
s4 = "MUO за добре дошли"
print ("String 3:", s3)
print ("String 4:", s4)
if (checkAnagrams (s3, s4)):
print ("Да, двата низа са анаграми един на друг")
друго:
print ("Не, двата низа не са анаграми един на друг")
s5 = "Питър Пайпър взе кълва мариновани чушки"
s6 = "Кълна мариновани чушки Питър Пайпър"
print ("String 5:", s5)
print ("String 6:", s6)
if (checkAnagrams (s5, s6)):
print ("Да, двата низа са анаграми един на друг")
друго:
print ("Не, двата низа не са анаграми един на друг")
s7 = "Тя продава миди край морския бряг"
s8 = "миди край морския бряг"
print ("String 7:", s7)
print ("String 8:", s8)
if (checkAnagrams (s7, s8)):
print ("Да, двата низа са анаграми един на друг")
друго:
print ("Не, двата низа не са анаграми един на друг")
s9 = "творчески"
s10 = "реактивен"
print ("String 9:", s9)
print ("String 10:", s10)
if (checkAnagrams (s9, s10)):
print ("Да, двата низа са анаграми един на друг")
друго:
print ("Не, двата низа не са анаграми един на друг")

Изход:

Струна 1: слушайте
Низ 2: безшумен
Да, двата струни са анаграми един на друг
Низ 3: Добре дошли в MUO
Струна 4: MUO за добре дошли
Да, двата струни са анаграми един на друг
Струна 5: Питър Пайпър откъсна кълна мариновани чушки
Низ 6: Кълва от мариновани чушки, които Питър Пайпър набра
Не, двата струна не са анаграми един на друг
Струна 7: Тя продава миди край морския бряг
Низ 8: миди от морския бряг
Не, двата струна не са анаграми един на друг
Низ 9: творчески
Низ 10: реактивен
Да, двата струни са анаграми един на друг

Свързани: Как да намерим гласни, съгласни, цифри и специални символи в низ

Проверете дали два низа са анаграми един на друг в JavaScript

По-долу е дадена програмата JavaScript за проверка дали два низа са анаграми един на друг или не:

функция checkAnagrams (s1, s2) {
нека size1 = s1.length;
нека size2 = s2.length;
// Ако дължината на двата низа не е еднаква,
// това означава, че те не могат да бъдат анаграми един на друг.
// По този начин върнете false.
ако (размер1! = размер2)
{
върнете false;
}
s1.sort ();
s2.sort ();
за (нека i = 0; i {
ако (s1 [i]! = s2 [i])
{
върнете false;
}
}
връщане вярно;
}
var s1 = "слушам";
var s2 = "безшумен";
document.write ("Низ 1:" + s1 + "
");
document.write ("Низ 2:" + s2 + "
");
if (checkAnagrams (s1.split (""), s2.split (""))) {
document.write ("Да, двата низа са анаграми един на друг" + "
");
} друго {
document.write ("Не, двата низа не са анаграми един на друг" + "
");
}
var s3 = "Добре дошли в MUO";
var s4 = "MUO за добре дошли";
document.write ("Низ 3:" + s3 + "
");
document.write ("Низ 4:" + s4 + "
");
if (checkAnagrams (s3.split (""), s4.split (""))) {
document.write ("Да, двата низа са анаграми един на друг" + "
");
} друго {
document.write ("Не, двата низа не са анаграми един на друг" + "
");
}
var s5 = "Питър Пайпър взе кълва мариновани чушки";
var s6 = "Кълва от мариновани чушки, набрани от Питър Пайпър";
document.write ("Низ 5:" + s5 + "
");
document.write ("Низ 6:" + s6 + "
");
if (checkAnagrams (s5.split (""), s6.split (""))) {
document.write ("Да, двата низа са анаграми един на друг" + "
");
} друго {
document.write ("Не, двата низа не са анаграми един на друг" + "
");
}
var s7 = "Тя продава миди край морския бряг";
var s8 = "морски черупки край морския бряг";
document.write ("Низ 7:" + s7 + "
");
document.write ("Низ 8:" + s8 + "
");
if (checkAnagrams (s7.split (""), s8.split (""))) {
document.write ("Да, двата низа са анаграми един на друг" + "
");
} друго {
document.write ("Не, двата низа не са анаграми един на друг" + "
");
}
var s9 = "творчески";
var s10 = "реактивен";
document.write ("Низ 9:" + s9 + "
");
document.write ("Низ 10:" + s10 + "
");
if (checkAnagrams (s9.split (""), s10.split (""))) {
document.write ("Да, двата низа са анаграми един на друг" + "
");
} друго {
document.write ("Не, двата низа не са анаграми един на друг" + "
");
}

Изход:

Струна 1: слушайте
Низ 2: безшумен
Да, двата струни са анаграми един на друг
Низ 3: Добре дошли в MUO
Струна 4: MUO за добре дошли
Да, двата струни са анаграми един на друг
Струна 5: Питър Пайпър откъсна кълна мариновани чушки
Низ 6: Кълва от мариновани чушки, които Питър Пайпър набра
Не, двата струна не са анаграми един на друг
Струна 7: Тя продава миди край морския бряг
Низ 8: миди от морския бряг
Не, двата струна не са анаграми един на друг
Низ 9: творчески
Низ 10: реактивен
Да, двата струни са анаграми един на друг

Свързани: Как намирате ASCII стойността на даден знак?

Използвайте правилните ресурси, за да се научите да кодирате

Ако искате да затвърдите уменията си за кодиране, е важно да научите нови концепции и да отделите време за тяхното използване. Един от начините да направите това е с програми за програмиране, които ще ви помогнат да научите различни концепции за програмиране, докато се забавлявате едновременно.

Дял
електронна поща
8 приложения, които да ви помогнат да се научите да кодирате за Международния ден на програмистите

Искате ли да изчистите уменията си за кодиране? Тези приложения и уебсайтове ще ви помогнат да научите програмиране със собствено темпо.

Прочетете Напред

Свързани теми
  • Програмиране
  • JavaScript
  • Python
  • C Програмиране
За автора
Юврадж Чандра (43 статии публикувани)

Yuvraj е студент по компютърни науки в Университета на Делхи, Индия. Той е запален по Full Stack Web Development. Когато не пише, той изследва дълбочината на различните технологии.

Още от Юврадж Чандра

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!

Щракнете тук, за да се абонирате