Вашата струна е палиндром? Независимо дали използвате Python, C ++ или JavaScript, използвайте един от тези алгоритми, за да разберете.
Казва се, че низ е палиндром, ако оригиналният низ и обратната му страна са еднакви. В тази статия ще научите за алгоритъма, за да определите дали даденият низ е палиндром или не. Също така ще научите как да внедрите този алгоритъм в най-популярните езици за програмиране като C ++, Python, C и JavaScript.
Примери за палиндромен низ
По-долу са дадени някои примери за низове от палиндром и непалиндром:
Алгоритъм за определяне дали даден низ е палиндром или не
Алгоритмите са просто поредица от инструкции, които се следват стъпка по стъпка, за да се направи нещо полезно или да се реши проблем. Можете да разрешите проблема с низовия палиндром, като използвате алгоритъма по-долу:
- Декларирайте функция, която приема даден низ като параметър.
- Създайте булева променлива и я задайте на true. Нека променливата бъде флаг.
- Намерете дължината на дадения низ. Нека дължината да бъде н.
- Преобразувайте дадения низ в малки букви, за да направите сравнението между символите, без регистрация.
- Инициализирайте променливата с нисък индекс като ниско и го задайте на 0.
- Инициализирайте променливата с висок индекс като Високо и го настройте на n-1.
- Направете следното, докато ниското е по-малко от високо:
- Сравнете символите с нисък индекс и висок индекс.
- Ако символите не съвпадат, задайте флага на false и прекъснете цикъла.
- Увеличете стойността на ниска с 1 и намалете стойността на ниска с 1.
- Ако флагът е истина в края на функцията, това означава, че дадения низ е палиндром.
- Ако флагът е false в края на функцията, това означава, че дадения низ не е палиндром.
Програма C ++ за проверка дали даден низ е палиндром или не
По-долу е представено изпълнението на C ++, за да се определи дали даденият низ е палиндром или не:
// Включително библиотеки
#include
използване на пространство от имена std;
// Функция за проверка на низ палиндром
void checkPalindrome (низ str)
{
// Флаг за проверка дали даденият низ е палиндром
флаг bool = вярно;
// Намиране на дължината на низа
int n = str.length ();
// Преобразуване на низа в малки букви
за (int i = 0; i {
str [i] = tolower (str [i]);
}
// Инициализиране на променлива с нисък индекс
int ниско = 0;
// Инициализиране на променлива с висок индекс
int висока = n-1;
// Изпълнението на цикъла, докато високото е по-голямо от ниското
докато (високо> ниско)
{
// Ако символите не са еднакви, задайте флага на false
// и прекъсване от цикъла
ако (str [високо]! = str [ниско])
{
флаг = невярно;
почивка;
}
// Увеличаване на променливата с нисък индекс
нисък ++;
// Намаляване на променливата с висок индекс
Високо--;
}
// Проверяваме дали флагът е вярно или невярно
ако (флаг)
{
cout << "Да, даденият низ е палиндром" << endl;
}
друго
{
cout << "Не, даденият низ не е палиндром" << endl;
}
връщане;
}
int main ()
{
// Тест: 1
низ str1 = "MUO";
checkPalindrome (str1);
// Тест: 2
низ str2 = "госпожо";
checkPalindrome (str2);
// Тест: 3
низ str3 = "MAKEUSEOF";
checkPalindrome (str3);
// Тест: 4
низ str4 = "състезателен автомобил";
checkPalindrome (str4);
// Тест: 5
низ str5 = "мама";
checkPalindrome (str5);
връщане 0;
}
Изход:
Не, даденият низ не е палиндром
Да, даденият низ е палиндром
Не, даденият низ не е палиндром
Да, даденият низ е палиндром
Да, даденият низ е палиндром
Програма Python за проверка дали даден низ е палиндром или не
По-долу е реализацията на Python, за да се определи дали даденият низ е палиндром или не:
# Функция за проверка на низ палиндром
def checkPalindrome (str):
# Флаг за проверка дали дадения низ е палиндром
флаг = Вярно
# Намиране на дължината на низа
n = len (str)
# Преобразуване на низа в малки букви
str = str.lower ()
# Инициализиране на променлива с нисък индекс
ниско = 0
# Инициализиране на променлива с висок индекс
високо = n-1
# Изпълнение на цикъла, докато високото е по-голямо от ниското
докато висока> ниска:
# Ако символите не са еднакви, задайте знамето на false
# и прекъсване от цикъла
ако str [високо]! = str [ниско]:
флаг = Невярно
почивка
# Увеличаване на променливата с нисък индекс
ниско = ниско + 1
# Намалете променливата с висок индекс
високо = високо - 1
# Проверете дали знамето е вярно или невярно
ако флаг:
print ("Да, даденият низ е палиндром")
друго:
print ("Не, даденият низ не е палиндром")
# Тестов случай: 1
str1 = "MUO"
checkPalindrome (str1)
# Тестов случай: 2
str2 = "госпожо"
checkPalindrome (str2)
# Тест: 3
str3 = "MAKEUSEOF"
checkPalindrome (str3)
# Тест: 4
str4 = "състезателен автомобил"
checkPalindrome (str4)
# Тест: 5
str5 = "мама"
checkPalindrome (str5)
Изход:
Не, даденият низ не е палиндром
Да, даденият низ е палиндром
Не, даденият низ не е палиндром
Да, даденият низ е палиндром
Да, даденият низ е палиндром
Програма C за проверка дали даден низ е палиндром или не
По-долу е изпълнението на C, за да се определи дали даденият низ е палиндром или не:
// Включително библиотеки
#include
#include
#include
#include
// Функция за проверка на низ палиндром
void checkPalindrome (char str [])
{
// Флаг за проверка дали даденият низ е палиндром
флаг bool = вярно;
// Намиране на дължината на низа
int n = strlen (str);
// Преобразуване на низа в малки букви
за (int i = 0; i {
str [i] = tolower (str [i]);
}
// Инициализиране на променлива с нисък индекс
int ниско = 0;
// Инициализиране на променлива с висок индекс
int висока = n-1;
// Изпълнението на цикъла, докато високото е по-голямо от ниското
докато (високо> ниско)
{
// Ако символите не са еднакви, задайте флага на false
// и прекъсване от цикъла
ако (str [високо]! = str [ниско])
{
флаг = невярно;
почивка;
}
// Увеличаване на променливата с нисък индекс
нисък ++;
// Намаляване на променливата с висок индекс
Високо--;
}
// Проверяваме дали флагът е вярно или невярно
ако (флаг)
{
printf ("Да, даденият низ е палиндром \ n");
}
друго
{
printf ("Не, даденият низ не е палиндром \ n");
}
връщане;
}
int main ()
{
// Тест: 1
char str1 [] = "MUO";
checkPalindrome (str1);
// Тест: 2
char str2 [] = "госпожо";
checkPalindrome (str2);
// Тест: 3
char str3 [] = "MAKEUSEOF";
checkPalindrome (str3);
// Тест: 4
char str4 [] = "състезателен автомобил";
checkPalindrome (str4);
// Тест: 5
char str5 [] = "мама";
checkPalindrome (str5);
връщане 0;
}
Изход:
Не, даденият низ не е палиндром
Да, даденият низ е палиндром
Не, даденият низ не е палиндром
Да, даденият низ е палиндром
Да, даденият низ е палиндром
Програма JavaScript за проверка дали даден низ е палиндром или не
По-долу е дадено изпълнението на JavaScript, за да се определи дали даденият низ е палиндром или не:
// Функция за проверка на низ палиндром
функция checkPalindrome (str) {
// Флаг за проверка дали даденият низ е палиндром
var флаг = вярно;
// Намиране на дължината на низа
var n = str.length;
// Преобразуване на низа в малки букви
str = str.toLowerCase ();
// Инициализиране на променлива с нисък индекс
var ниско = 0;
// Инициализиране на променлива с висок индекс
var високо = n-1;
// Изпълнението на цикъла, докато високото е по-голямо от ниското
докато (високо> ниско) {
// Ако символите не са еднакви, задайте флага на false
// и прекъсване от цикъла
ако (str [високо]! = str [ниско]) {
флаг = невярно;
почивка;
}
// Увеличаване на променливата с нисък индекс
нисък ++;
// Намаляване на променливата с висок индекс
Високо--;
}
// Проверяваме дали флагът е вярно или невярно
ако (флаг) {
console.log ("Да, даденият низ е палиндром");
} друго {
console.log ("Не, даденият низ не е палиндром");
}
}
// Тест: 1
var str1 = "MUO";
checkPalindrome (str1);
// Тест: 2
var str2 = "госпожо";
checkPalindrome (str2);
// Тест: 3
var str3 = "MAKEUSEOF";
checkPalindrome (str3);
// Тест: 4
var str4 = "състезателен автомобил";
checkPalindrome (str4);
// Тест: 5
var str5 = "мама";
checkPalindrome (str5);
Изход:
Не, даденият низ не е палиндром
Да, даденият низ е палиндром
Не, даденият низ не е палиндром
Да, даденият низ е палиндром
Да, даденият низ е палиндром
Научете как да се справяте със струни в програмирането
Работата със струни е неразделна част от програмирането. Трябва да знаете как да използвате и манипулирате низове във всеки от езиците за програмиране като Python, JavaScript, C ++ и т.н.
Ако търсите език, с който да започнете, Python е отличен избор.
Използването и манипулирането на низове в Python може да изглежда трудно, но е измамно просто.
Прочетете Напред
- Програмиране
- Уроци за кодиране
Yuvraj е студент по компютърни науки в Университета на Делхи, Индия. Той е запален по Full Stack Web Development. Когато не пише, той изследва дълбочината на различните технологии.
Абонирайте се за нашия бюлетин
Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!
Още една стъпка…!
Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.