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

C ++, Python, C или JavaScript: без значение кой използвате, използвайте този алгоритъм за определяне на симетрични низове.

Низ се казва симетричен, ако и двете половини на низа са еднакви. В тази статия ще научите алгоритъм за определяне дали даден низ е симетричен или не. Ще научите и как да внедрите този алгоритъм в най -популярните езици за програмиране като C ++, Python, C и JavaScript.

Постановка на проблем

Дава ви се низ. Трябва да определите дали даденият низ е симетричен или не.

Пример 1: Нека str = "abab".

Даденото е симетрично, тъй като двете половини на струната са еднакви.

По този начин изходът е "Да, даденият низ е симетричен".

Пример 2: Нека str = "мадам".

Ако дължината на низа е нечетна, средният знак на низа се игнорира. Следователно, първото полувреме = "ma" и второто полувреме = "am". Двете половини не са еднакви.

По този начин изходът е "Не, дадения низ не е симетричен".

Пример 3: Нека str = "madma".

instagram viewer

Първото полувреме = "ма" и второто полувреме = "ма". И двете половини на струната са еднакви.

По този начин изходът е "Да, даденият низ е симетричен".

Алгоритъм за определяне дали даден низ е симетричен или не

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

  1. Намерете дължината на низа.
  2. Намерете midIndex на низа.
    • Ако дължината на низа е четна, midIndex = дължина/2.
    • Ако дължината на низа е нечетна, midIndex = (дължина/2) + 1. В този случай средният знак на низа се пренебрегва за сравнение.
  3. Инициализирайте две променливи на показалеца показалец1 и показалец 2. показалец1 ще съхранява индекса на първия знак (0) на низ и показалец 2 ще съхранява индекса на средния знак (midIndex) на низа.
  4. Сега сравнете съответните знаци от двете половини на низ, като използвате a докато цикъл. Изпълнете a докато цикъл до показалец1.
  5. Сравнете съответните знаци в индексите показалец1 и показалец 2.
  6. Ако някой съответстващ знак се намери различен, върнете го невярно. И ако не се открият различни символи, които се различават, върнете се вярно.
  7. Също така не забравяйте да увеличите стойността на показалец1 и показалец 2 във всяка итерация.

C ++ програма за определяне дали даден низ е симетричен или не

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

// C ++ програма за проверка дали низът е симетричен или не
#включва
използване на пространство от имена std;
// Функция за проверка дали низът е симетричен или не
bool isSymmetrical (низ str)
{
int midIndex;
int дължина = str.length ();
// Ако дължината на низа е четна
ако (дължина % 2 == 0)
{
midIndex = дължина/2;
}
// Ако дължината на низ е нечетна
иначе
{
midIndex = дължина / 2 + 1;
}
int pointer1 = 0;
int pointer2 = midIndex;
while (pointer1{
if (str [pointer1] == str [pointer2])
{
указател1 += 1;
указател2 += 1;
}
иначе
{
return false;
}
}
връщане true;
}
// Код на водача
int main ()
{
// Тестов случай: 1
низ str1 = "abab";
cout << "String 1:" << str1 << endl;
if (isSymmetrical (str1))
{
cout << "Да, даденият низ е симетричен" << endl;
}
иначе
{
cout << "Не, даденият низ не е симетричен" << endl;
}
// Тестов случай: 2
низ str2 = "мадам";
cout << "Низ 2:" << str2 << endl;
if (isSymmetrical (str2))
{
cout << "Да, даденият низ е симетричен" << endl;
}
иначе
{
cout << "Не, даденият низ не е симетричен" << endl;
}
// Тестов случай: 3
низ str3 = "madma";
cout << "Низ 3:" << str3 << endl;
if (isSymmetrical (str3))
{
cout << "Да, даденият низ е симетричен" << endl;
}
иначе
{
cout << "Не, даденият низ не е симетричен" << endl;
}
// Тестов случай: 4
низ str4 = "граждански";
cout << "Низ 4:" << str4 << endl;
if (isSymmetrical (str4))
{
cout << "Да, даденият низ е симетричен" << endl;
}
иначе
{
cout << "Не, даденият низ не е симетричен" << endl;
}
// Тест: 5
низ str5 = "khokho";
cout << "Низ 5:" << str5 << endl;
if (isSymmetrical (str5))
{
cout << "Да, даденият низ е симетричен" << endl;
}
иначе
{
cout << "Не, даденият низ не е симетричен" << endl;
}
връщане 0;
}

Изход:

Низ 1: abab
Да, даденият низ е симетричен
Низ 2: мадам
Не, даденият низ не е симетричен
Струна 3: лудост
Да, даденият низ е симетричен
Низ 4: граждански
Не, даденият низ не е симетричен
Низ 5: khokho
Да, даденият низ е симетричен

Свързани: Как да обърнем низ в C ++, Python и JavaScript

Програма Python за определяне дали даден низ е симетричен или не

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

# Програма Python за проверка дали низът е симетричен или не
# Функция за проверка дали низът е симетричен или не
def isSymmetrical (str):
midIndex = 0
дължина = len (str)
ако дължина%2 == 0:
midIndex = дължина // 2
иначе:
midIndex = дължина // 2 + 1
pointer1 = 0
pointer2 = midIndex
докато указател1if (str [pointer1] == str [pointer2]):
указател1 += 1
указател2 + = 1
иначе:
връщане False
върнете True
# Тестов случай: 1
str1 = "abab"
print ("Низ 1:", str1)
if (isSymmetrical (str1)):
print ("Да, даденият низ е симетричен")
иначе:
print ("Не, даденият низ не е симетричен")
# Тестов случай: 2
str2 = "госпожо"
print ("Низ 2:", str2)
if (isSymmetrical (str2)):
print ("Да, даденият низ е симетричен")
иначе:
print ("Не, даденият низ не е симетричен")
# Тестов случай: 3
str3 = "луда"
print ("Низ 3:", str3)
if (isSymmetrical (str3)):
print ("Да, даденият низ е симетричен")
иначе:
print ("Не, даденият низ не е симетричен")
# Тестов случай: 4
str4 = "граждански"
print ("Низ 4:", str4)
if (isSymmetrical (str4)):
print ("Да, даденият низ е симетричен")
иначе:
print ("Не, даденият низ не е симетричен")
# Тестов случай: 5
str5 = "khokho"
print ("Низ 5:", str5)
if (isSymmetrical (str5)):
print ("Да, даденият низ е симетричен")
иначе:
print ("Не, даденият низ не е симетричен")

Изход:

Низ 1: abab
Да, даденият низ е симетричен
Низ 2: мадам
Не, даденият низ не е симетричен
Струна 3: лудост
Да, даденият низ е симетричен
Низ 4: граждански
Не, даденият низ не е симетричен
Низ 5: khokho
Да, даденият низ е симетричен

Свързани: Изучаване на Python? Ето как да манипулирате низове

JavaScript програма за определяне дали даден низ е симетричен или не

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

// JavaScript програма за проверка дали низът е симетричен или не
// Функция за проверка дали низът е симетричен или не
функцията е Симетрична (str) {
var midIndex;
var length = str.length;
// Ако дължината на низа е четна
ако (дължина % 2 == 0) {
midIndex = Math.floor (дължина / 2);
}
// Ако дължината на низ е нечетна
друго {
midIndex = Math.floor (дължина / 2) + 1;
}
var pointer1 = 0;
var pointer2 = midIndex;
while (pointer1if (str [pointer1] == str [pointer2]) {
указател1 += 1;
указател2 += 1;
} else {
return false;
}
}
връщане true;
}
// Тестов случай: 1
var str1 = "abab";
document.write ("Низ 1:" + str1 + "
");
if (isSymmetrical (str1)) {
document.write ("Да, даденият низ е симетричен" + "
");
} else {
document.write ("Не, даденият низ не е симетричен" + "
");
}
// Тестов случай: 2
var str2 = "мадам";
document.write ("Низ 2:" + str2 + "
");
if (isSymmetrical (str2)) {
document.write ("Да, даденият низ е симетричен" + "
");
} else {
document.write ("Не, даденият низ не е симетричен" + "
");
}
// Тестов случай: 3
var str3 = "madma";
document.write ("Низ 3:" + str3 + "
");
if (isSymmetrical (str3)) {
document.write ("Да, даденият низ е симетричен" + "
");
} else {
document.write ("Не, даденият низ не е симетричен" + "
");
}
// Тестов случай: 4
var str4 = "граждански";
document.write ("Низ 4:" + str4 + "
");
if (isSymmetrical (str4)) {
document.write ("Да, даденият низ е симетричен" + "
");
} else {
document.write ("Не, даденият низ не е симетричен" + "
");
}
// Тест: 5
var str5 = "khokho";
document.write ("Низ 5:" + str5 + "
");
if (isSymmetrical (str5)) {
document.write ("Да, даденият низ е симетричен" + "
");
} else {
document.write ("Не, даденият низ не е симетричен" + "
");
}

Изход:

Низ 1: abab
Да, даденият низ е симетричен
Низ 2: мадам
Не, даденият низ не е симетричен
Струна 3: лудост
Да, даденият низ е симетричен
Низ 4: граждански
Не, даденият низ не е симетричен
Низ 5: khokho
Да, даденият низ е симетричен

Свързани: Как да намерите най-често срещания характер в низ

Решаване на проблеми въз основа на низове

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

ДялTweetелектронна поща
Как да проверите дали низ е палиндром

Вашата струна палиндром ли е? Независимо дали използвате Python, C ++ или JavaScript, използвайте един от тези алгоритми, за да разберете.

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

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

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

Още от Yuvraj Chandra

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

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

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