Je li vaša žica palindrom? Koristite li Python, C ++ ili JavaScript, upotrijebite jedan od ovih algoritama da biste saznali.
Za strunu se kaže da je palindrom ako su izvorni niz i njegova naličje isti. U ovom ćete članku naučiti o algoritmu za utvrđivanje je li zadani niz palindrom ili nije. Također ćete naučiti kako implementirati ovaj algoritam u najpopularnije programske jezike kao što su C ++, Python, C i JavaScript.
Primjeri palindromske žice
Ispod je nekoliko primjera žica s palindroma i ne-palindroma:
Algoritam za određivanje je li zadani niz palindrom ili nije
Algoritmi su jednostavno niz uputa koje se slijede, korak po korak, kako bi se učinilo nešto korisno ili riješio problem. Problem palindroma niza možete riješiti pomoću donjeg algoritma:
- Deklarirajte funkciju koja prihvaća zadani niz kao parametar.
- Stvorite logičku varijablu i postavite je na true. Neka varijabla bude zastava.
- Pronađite duljinu zadanog niza. Neka duljina bude n.
- Pretvorite zadani niz u mala slova da biste napravili usporedbu između znakova koji ne razlikuju velika i mala slova.
- Inicijalizirajte varijablu niskog indeksa kao niska i postavite ga na 0.
- Inicijalizirajte varijablu visokog indeksa kao visoko i postavite ga na n-1.
- Učinite sljedeće dok je nisko manje od visoko:
- Usporedite znakove s malim indeksom i visokim indeksom.
- Ako se znakovi ne podudaraju, postavite zastavicu na false i prekinite petlju.
- Povećajte vrijednost low za 1 i smanjite vrijednost high za 1.
- Ako je zastava istinita na kraju funkcije, to znači da je zadati niz palindrom.
- Ako je zastavica lažna na kraju funkcije, to znači da zadani niz nije palindrom.
C ++ program za provjeru je li zadani niz palindrom ili nije
Ispod je implementacija C ++ da bi se utvrdilo je li zadati niz palindrom ili nije:
// Uključujući knjižnice
#include
pomoću prostora imena std;
// Funkcija provjere palindroma niza
void checkPalindrome (string str)
{
// Označi da provjeri je li zadani niz palindrom
zastava bool = true;
// Pronalaženje duljine niza
int n = str.length ();
// Pretvaranje niza u mala slova
za (int i = 0; i {
str [i] = tolower (str [i]);
}
// Inicijalizacija varijable niskog indeksa
int nisko = 0;
// Inicijalizacija varijable visokog indeksa
int visoko = n-1;
// Pokretanje petlje dok visoka nije veća od niske
dok (visoko> nisko)
{
// Ako znakovi nisu isti, postavite zastavicu na false
// i prekid iz petlje
ako (str [visoko]! = str [nisko])
{
zastava = netačno;
pauza;
}
// Povećavanje varijable niskog indeksa
nisko ++;
// Dekrementiraj varijablu visokog indeksa
visoko--;
}
// Provjeri je li zastava istinita ili netačna
ako (zastava)
{
cout << "Da, zadani je niz palindrom" << endl;
}
drugo
{
cout << "Ne, zadani niz nije palindrom" << endl;
}
povratak;
}
int main ()
{
// Ispitni slučaj: 1
niz str1 = "MUO";
checkPalindrome (str1);
// Ispitni slučaj: 2
niz str2 = "gospođo";
checkPalindrome (str2);
// Ispitni slučaj: 3
string str3 = "MAKEUSEOF";
checkPalindrome (str3);
// Ispitni slučaj: 4
niz str4 = "trkaći automobil";
checkPalindrome (str4);
// Ispitni slučaj: 5
niz str5 = "mama";
checkPalindrome (str5);
return 0;
}
Izlaz:
Ne, zadani niz nije palindrom
Da, zadani niz je palindrom
Ne, zadani niz nije palindrom
Da, zadani niz je palindrom
Da, zadani niz je palindrom
Python program za provjeru je li dati niz palindrom ili nije
Ispod je implementacija Pythona kako bi se utvrdilo je li zadati niz palindrom ili nije:
# Funkcija provjere palindroma niza
def checkPalindrome (str):
# Označi za provjeru je li zadani niz palindrom
zastava = Tačno
# Pronalaženje duljine niza
n = len (str)
# Pretvaranje niza u mala slova
str = str.lower ()
# Inicijalizacija varijable niskog indeksa
nisko = 0
# Inicijalizacija varijable visokog indeksa
visoko = n-1
# Pokretanje petlje dok visoka nije veća od niske
dok je visoka> niska:
# Ako znakovi nisu isti, postavite zastavicu na false
# i prekinuti iz petlje
ako je str [visoka]! = str [niska]:
zastava = Lažno
pauza
# Povećajte varijablu niskog indeksa
nisko = nisko + 1
# Umanji varijablu visokog indeksa
visoko = visoko - 1
# Provjerite je li zastava istinita ili netačna
ako zastava:
print ("Da, zadani niz je palindrom")
drugo:
print ("Ne, zadani niz nije palindrom")
# Test slučaj: 1
str1 = "MUO"
checkPalindrome (str1)
# Test slučaj: 2
str2 = "gospođo"
checkPalindrome (str2)
# Test slučaj: 3
str3 = "MAKEUSEOF"
checkPalindrome (str3)
# Test slučaj: 4
str4 = "trkaći automobil"
checkPalindrome (str4)
# Test slučaj: 5
str5 = "mama"
checkPalindrome (str5)
Izlaz:
Ne, zadani niz nije palindrom
Da, zadani niz je palindrom
Ne, zadani niz nije palindrom
Da, zadani niz je palindrom
Da, zadani niz je palindrom
C program za provjeru je li zadani niz palindrom ili nije
Ispod je implementacija C za utvrđivanje je li zadani niz palindrom ili nije:
// Uključujući knjižnice
#include
#include
#include
#include
// Funkcija provjere palindroma niza
void checkPalindrome (char str [])
{
// Označi da provjeri je li zadani niz palindrom
zastava bool = true;
// Pronalaženje duljine niza
int n = strlen (str);
// Pretvaranje niza u mala slova
za (int i = 0; i {
str [i] = tolower (str [i]);
}
// Inicijalizacija varijable niskog indeksa
int nisko = 0;
// Inicijalizacija varijable visokog indeksa
int visoko = n-1;
// Pokretanje petlje dok visoka nije veća od niske
dok (visoko> nisko)
{
// Ako znakovi nisu isti, postavite zastavicu na false
// i prekid iz petlje
ako (str [visoko]! = str [nisko])
{
zastava = netačno;
pauza;
}
// Povećavanje varijable niskog indeksa
nisko ++;
// Dekrementiraj varijablu visokog indeksa
visoko--;
}
// Provjeri je li zastava istinita ili netačna
ako (zastava)
{
printf ("Da, zadani je niz palindrom \ n");
}
drugo
{
printf ("Ne, zadani niz nije palindrom \ n");
}
povratak;
}
int main ()
{
// Ispitni slučaj: 1
char str1 [] = "MUO";
checkPalindrome (str1);
// Ispitni slučaj: 2
char str2 [] = "gospođo";
checkPalindrome (str2);
// Ispitni slučaj: 3
char str3 [] = "MAKEUSEOF";
checkPalindrome (str3);
// Ispitni slučaj: 4
char str4 [] = "trkaći automobil";
checkPalindrome (str4);
// Ispitni slučaj: 5
char str5 [] = "mama";
checkPalindrome (str5);
return 0;
}
Izlaz:
Ne, zadani niz nije palindrom
Da, zadani niz je palindrom
Ne, zadani niz nije palindrom
Da, zadani niz je palindrom
Da, zadani niz je palindrom
JavaScript program za provjeru je li dati niz palindrom ili nije
Ispod je implementacija JavaScript-a da bi se utvrdilo je li zadati niz palindrom ili nije:
// Funkcija provjere palindroma niza
funkcija checkPalindrome (str) {
// Označi da provjeri je li zadani niz palindrom
var zastava = istinito;
// Pronalaženje duljine niza
var n = str.duljina;
// Pretvaranje niza u mala slova
str = str.toLowerCase ();
// Inicijalizacija varijable niskog indeksa
var nisko = 0;
// Inicijalizacija varijable visokog indeksa
var visoko = n-1;
// Pokretanje petlje dok visoka nije veća od niske
dok (visoko> nisko) {
// Ako znakovi nisu isti, postavite zastavicu na false
// i prekid iz petlje
if (str [visoko]! = str [nisko]) {
zastava = netačno;
pauza;
}
// Povećavanje varijable niskog indeksa
nisko ++;
// Dekrementiraj varijablu visokog indeksa
visoko--;
}
// Provjeri je li zastava istinita ili netačna
ako (zastava) {
console.log ("Da, zadani je niz palindrom");
} ostalo {
console.log ("Ne, zadani niz nije palindrom");
}
}
// Ispitni slučaj: 1
var str1 = "MUO";
checkPalindrome (str1);
// Ispitni slučaj: 2
var str2 = "gospođo";
checkPalindrome (str2);
// Ispitni slučaj: 3
var str3 = "MAKEUSEOF";
checkPalindrome (str3);
// Ispitni slučaj: 4
var str4 = "trkaći automobil";
checkPalindrome (str4);
// Ispitni slučaj: 5
var str5 = "mama";
checkPalindrome (str5);
Izlaz:
Ne, zadani niz nije palindrom
Da, zadani niz je palindrom
Ne, zadani niz nije palindrom
Da, zadani niz je palindrom
Da, zadani niz je palindrom
Naučite kako se nositi sa žicama u programiranju
Rad sa žicama je sastavni dio programiranja. Morate znati koristiti i manipulirati nizovima u bilo kojem od programskih jezika kao što su Python, JavaScript, C ++ itd.
Ako tražite jezik za početak, Python je izvrstan izbor.
Korištenje i manipulacija nizovima u Pythonu može izgledati teško, ali je varljivo jednostavno.
Pročitajte Dalje
- Programiranje
- Vodiči za kodiranje
Yuvraj je studentica preddiplomskog studija računarstva na Sveučilištu u Delhiju u Indiji. Zaljubljen je u Full Stack web razvoj. Kad ne piše, istražuje dubinu različitih tehnologija.
Pretplatite se na naše obavijesti
Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!
Još jedan korak…!
Potvrdite svoju e-adresu u e-pošti koju smo vam upravo poslali.