Je váš řetězec palindrom? Ať už používáte Python, C ++ nebo JavaScript, zjistěte to pomocí jednoho z těchto algoritmů.
Řetězec je považován za palindrom, pokud je původní řetězec a jeho zadní strana stejná. V tomto článku se dozvíte o algoritmu k určení, zda je daný řetězec palindrom nebo ne. Dozvíte se také, jak implementovat tento algoritmus v nejpopulárnějších programovacích jazycích, jako jsou C ++, Python, C a JavaScript.
Příklady řetězce Palindrome
Níže uvádíme několik příkladů řetězců palindromu a nepalindromu:
Algoritmus k určení, zda je daný řetězec palindromem či nikoli
Algoritmy jsou jednoduše řada pokynů, které se krok za krokem dodržují, aby se udělalo něco užitečného nebo vyřešil problém. Problém s řetězcovým palindromem můžete vyřešit pomocí níže uvedeného algoritmu:
- Deklarujte funkci, která přijímá daný řetězec jako parametr.
- Vytvořte logickou proměnnou a nastavte ji na hodnotu true. Nechť je proměnná vlajka.
- Najděte délku daného řetězce. Nechť je délka n.
- Převeďte daný řetězec na malá písmena, aby se při porovnávání znaků nerozlišovala malá a velká písmena.
- Inicializujte proměnnou s nízkým indexem jako nízký a nastavte jej na 0.
- Inicializujte proměnnou vysokého indexu jako vysoký a nastavte jej na n-1.
- Při nízké hodnotě nižší než vysoké proveďte následující:
- Porovnávejte znaky s nízkým indexem a vysokým indexem.
- Pokud se znaky neshodují, nastavte příznak na hodnotu false a přerušte smyčku.
- Zvyšte hodnotu nízké o 1 a snižte hodnotu vysoké o 1.
- Pokud je příznak na konci funkce pravdivý, znamená to, že daný řetězec je palindrom.
- Pokud je příznak na konci funkce nepravdivý, znamená to, že daný řetězec není palindrom.
Program v C ++ ke kontrole, zda je daný řetězec palindrom nebo ne
Níže je implementace C ++ k určení, zda je daný řetězec palindrom nebo ne:
// Včetně knihoven
#zahrnout
pomocí jmenného prostoru std;
// Funkce pro kontrolu palindromu řetězce
void checkPalindrome (řetězec str)
{
// Příznak pro kontrolu, zda je daný řetězec palindrom
příznak bool = true;
// Zjištění délky řetězce
int n = str.length ();
// Převod řetězce na malá písmena
pro (int i = 0; i {
str [i] = tolower (str [i]);
}
// Inicializace proměnné s nízkým indexem
int low = 0;
// Inicializace proměnné s vysokým indexem
int high = n-1;
// Spouštění smyčky, dokud není vysoká větší než nízká
while (vysoká> nízká)
{
// Pokud znaky nejsou stejné, nastavte příznak na hodnotu false
// a vymanit se ze smyčky
if (str [vysoká]! = str [nízká])
{
flag = false;
přestávka;
}
// Zvýší proměnnou nízkého indexu
low ++;
// Snižte proměnnou vysokého indexu
vysoký--;
}
// Zkontrolujte, zda je příznak pravdivý nebo nepravdivý
pokud (vlajka)
{
cout << "Ano, daný řetězec je palindrom" << endl;
}
jiný
{
cout << "Ne, daný řetězec není palindrom" << endl;
}
vrátit se;
}
int main ()
{
// Testovací případ: 1
řetězec str1 = "MUO";
checkPalindrome (str1);
// Testovací případ: 2
řetězec str2 = "madam";
checkPalindrome (str2);
// Testovací případ: 3
řetězec str3 = "VYROBIT";
checkPalindrome (str3);
// Testovací případ: 4
řetězec str4 = "závodní auto";
checkPalindrome (str4);
// Testovací případ: 5
řetězec str5 = "máma";
checkPalindrome (str5);
návrat 0;
}
Výstup:
Ne, daný řetězec není palindrom
Ano, daný řetězec je palindrom
Ne, daný řetězec není palindrom
Ano, daný řetězec je palindrom
Ano, daný řetězec je palindrom
Program v Pythonu ke kontrole, zda je daný řetězec palindrom nebo ne
Níže je implementace Pythonu k určení, zda je daný řetězec palindrom nebo ne:
# Funkce pro kontrolu palindromu řetězce
def checkPalindrome (str):
# Příznak pro kontrolu, zda je daný řetězec palindrom
flag = True
# Zjištění délky řetězce
n = len (str)
# Převod řetězce na malá písmena
str = str.lower ()
# Inicializace proměnné s nízkým indexem
nízká = 0
# Inicializace proměnné s vysokým indexem
vysoká = n-1
# Spouštění smyčky, dokud není vyšší než nižší
zatímco vysoká> nízká:
# Pokud znaky nejsou stejné, nastavte příznak na hodnotu false
# a vymanit se ze smyčky
pokud str [vysoká]! = str [nízká]:
flag = False
přestávka
# Zvýšení proměnné nízkého indexu
low = low + 1
# Snižte proměnnou vysokého indexu
vysoká = vysoká - 1
# Zkontrolujte, zda je příznak pravdivý nebo nepravdivý
pokud vlajka:
print ("Ano, daný řetězec je palindrom")
jiný:
print ("Ne, daný řetězec není palindrom")
# Testovací případ: 1
str1 = "MUO"
checkPalindrome (str1)
# Testovací případ: 2
str2 = "madam"
checkPalindrome (str2)
# Testovací případ: 3
str3 = "VYDĚLAT"
checkPalindrome (str3)
# Testovací případ: 4
str4 = "závodní auto"
checkPalindrome (str4)
# Testovací případ: 5
str5 = "maminka"
checkPalindrome (str5)
Výstup:
Ne, daný řetězec není palindrom
Ano, daný řetězec je palindrom
Ne, daný řetězec není palindrom
Ano, daný řetězec je palindrom
Ano, daný řetězec je palindrom
Program C ke kontrole, zda je daný řetězec palindrom nebo ne
Níže je implementace C k určení, zda je daný řetězec palindrom nebo ne:
// Včetně knihoven
#zahrnout
#zahrnout
#zahrnout
#zahrnout
// Funkce pro kontrolu palindromu řetězce
void checkPalindrome (char str [])
{
// Příznak pro kontrolu, zda je daný řetězec palindrom
příznak bool = true;
// Zjištění délky řetězce
int n = strlen (str);
// Převod řetězce na malá písmena
pro (int i = 0; i {
str [i] = tolower (str [i]);
}
// Inicializace proměnné s nízkým indexem
int low = 0;
// Inicializace proměnné s vysokým indexem
int high = n-1;
// Spouštění smyčky, dokud není vysoká větší než nízká
while (vysoká> nízká)
{
// Pokud znaky nejsou stejné, nastavte příznak na hodnotu false
// a vymanit se ze smyčky
if (str [vysoká]! = str [nízká])
{
flag = false;
přestávka;
}
// Zvýší proměnnou nízkého indexu
low ++;
// Snižte proměnnou vysokého indexu
vysoký--;
}
// Zkontrolujte, zda je příznak pravdivý nebo nepravdivý
pokud (vlajka)
{
printf ("Ano, daný řetězec je palindrom \ n");
}
jiný
{
printf ("Ne, daný řetězec není palindrom \ n");
}
vrátit se;
}
int main ()
{
// Testovací případ: 1
char str1 [] = "MUO";
checkPalindrome (str1);
// Testovací případ: 2
char str2 [] = "madam";
checkPalindrome (str2);
// Testovací případ: 3
char str3 [] = "VYDĚLAT";
checkPalindrome (str3);
// Testovací případ: 4
char str4 [] = "závodní auto";
checkPalindrome (str4);
// Testovací případ: 5
char str5 [] = "máma";
checkPalindrome (str5);
návrat 0;
}
Výstup:
Ne, daný řetězec není palindrom
Ano, daný řetězec je palindrom
Ne, daný řetězec není palindrom
Ano, daný řetězec je palindrom
Ano, daný řetězec je palindrom
Program JavaScript ke kontrole, zda je daný řetězec palindrom nebo ne
Níže je implementace JavaScriptu k určení, zda je daný řetězec palindromem či nikoli:
// Funkce pro kontrolu palindromu řetězce
funkce checkPalindrome (str) {
// Příznak pro kontrolu, zda je daný řetězec palindrom
var flag = true;
// Zjištění délky řetězce
var n = str.length;
// Převod řetězce na malá písmena
str = str.toLowerCase ();
// Inicializace proměnné s nízkým indexem
var low = 0;
// Inicializace proměnné s vysokým indexem
var high = n-1;
// Spouštění smyčky, dokud není vysoká větší než nízká
while (high> low) {
// Pokud znaky nejsou stejné, nastavte příznak na hodnotu false
// a vymanit se ze smyčky
if (str [vysoká]! = str [nízká]) {
flag = false;
přestávka;
}
// Zvýší proměnnou nízkého indexu
low ++;
// Snižte proměnnou vysokého indexu
vysoký--;
}
// Zkontrolujte, zda je příznak pravdivý nebo nepravdivý
if (flag) {
console.log ("Ano, daný řetězec je palindrom");
} else {
console.log ("Ne, daný řetězec není palindrom");
}
}
// Testovací případ: 1
var str1 = "MUO";
checkPalindrome (str1);
// Testovací případ: 2
var str2 = "madam";
checkPalindrome (str2);
// Testovací případ: 3
var str3 = "VYDĚLAT";
checkPalindrome (str3);
// Testovací případ: 4
var str4 = "závodní auto";
checkPalindrome (str4);
// Testovací případ: 5
var str5 = "máma";
checkPalindrome (str5);
Výstup:
Ne, daný řetězec není palindrom
Ano, daný řetězec je palindrom
Ne, daný řetězec není palindrom
Ano, daný řetězec je palindrom
Ano, daný řetězec je palindrom
Naučte se, jak se vypořádat s řetězci v programování
Práce s řetězci je nedílnou součástí programování. Musíte vědět, jak používat a manipulovat s řetězci v kterémkoli z programovacích jazyků, jako je Python, JavaScript, C ++ atd.
Pokud hledáte jazyk, se kterým můžete začít, je Python vynikající volbou.
Používání a manipulace s řetězci v Pythonu se může zdát obtížné, ale je to klamně přímé.
Přečtěte si další
- Programování
- Výukové programy pro kódování
Yuvraj je vysokoškolský student výpočetní techniky na univerzitě v Dillí v Indii. Je vášnivým vývojářem Full Stack Web Development. Když nepíše, zkoumá hloubku různých technologií.
Přihlaste se k odběru našeho zpravodaje
Připojte se k našemu zpravodaji s technickými tipy, recenzemi, bezplatnými elektronickými knihami a exkluzivními nabídkami!
Ještě jeden krok…!
V e-mailu, který jsme vám právě poslali, potvrďte svou e-mailovou adresu.