Ar jūsų stygos yra palindromas? Nesvarbu, ar naudojate „Python“, „C ++“ ar „JavaScript“, naudokite vieną iš šių algoritmų, kad sužinotumėte.
Sakoma, kad eilutė yra palindromas, jei pradinė eilutė ir jos atvirkštinė dalis yra vienodos. Šiame straipsnyje sužinosite apie algoritmą, kad nustatytumėte, ar pateikta eilutė yra palindromas, ar ne. Taip pat sužinosite, kaip įdiegti šį algoritmą populiariausiose programavimo kalbose, tokiose kaip C ++, Python, C ir JavaScript.
Palindromo stygos pavyzdžiai
Žemiau pateikiami keli palindrominių ir nepalindrominių stygų pavyzdžiai:
Algoritmas norint nustatyti, ar duota styga yra palindromas, ar ne
Algoritmai yra tiesiog instrukcijų seka, kurios žingsnis po žingsnio vykdoma norint padaryti ką nors naudingo ar išspręsti problemą. Eilutės palindromo problemą galite išspręsti naudodami žemiau pateiktą algoritmą:
- Paskelbkite funkciją, kuri priima nurodytą eilutę kaip parametrą.
- Sukurkite loginį kintamąjį ir nustatykite jį į tiesą. Tegul kintamasis būna vėliava.
- Raskite pateiktos eilutės ilgį. Tegul ilgis būna n.
- Konvertuokite pateiktą eilutę į mažąsias, kad palygintumėte simbolius su mažosiomis ir mažosiomis raidėmis.
- Inicializuokite mažo indekso kintamąjį kaip žemas ir nustatykite jį į 0.
- Inicializuokite aukšto indekso kintamąjį kaip aukštas ir nustatykite jį į n-1.
- Atlikite šiuos veiksmus, kai žemas yra mažesnis nei aukštas:
- Palyginkite simbolius esant žemam ir aukštam indeksui.
- Jei simboliai nesutapo, nustatykite vėliavą klaidingai ir nutraukite kilpą.
- Padidinkite mažos reikšmę 1, o aukštą - 1.
- Jei funkcijos pabaigoje žymėjimas yra teisingas, tai reiškia, kad pateikta eilutė yra palindromas.
- Jei funkcijos pabaigoje vėliava yra klaidinga, tai reiškia, kad pateikta eilutė nėra palindromas.
„C ++“ programa, skirta patikrinti, ar tam tikra styga yra palindromas, ar ne
Žemiau pateikiamas C ++ įgyvendinimas, siekiant nustatyti, ar nurodyta eilutė yra palindromas, ar ne:
// Įskaitant bibliotekas
# įtraukti
naudojant vardų sritį std;
// Funkcija patikrinti stygų palindromą
void checkPalindrome (eilutė str)
{
// Pažymėti, jei norite patikrinti, ar pateikta eilutė yra palindromas
bool flag = tiesa;
// Eilutės ilgio radimas
int n = str. ilgis ();
// Stygos pavertimas mažosiomis
už (int i = 0; i {
str [i] = toloweris (str [i]);
}
// Inicijuojamas mažo indekso kintamasis
int žemas = 0;
// Inicializuojamas didelio indekso kintamasis
int aukštas = n-1;
// Kilpos vykdymas iki aukšto yra didesnis nei žemas
o (aukštas> žemas)
{
// Jei simboliai nesutampa, nustatykite vėliavą į „false“
// ir nutraukti nuo kilpos
jei (str [didelis]! = str [žemas])
{
vėliava = klaidinga;
pertrauka;
}
// Padidinkite mažo indekso kintamąjį
žemas ++;
// Mažinti didelio indekso kintamąjį
didelis--;
}
// Patikrinkite, ar žyma teisinga, ar klaidinga
jei (vėliava)
{
cout << "Taip, duota eilutė yra palindromas" << endl;
}
Kitas
{
cout << "Ne, pateikta eilutė nėra palindromas" << endl;
}
grįžti;
}
int main ()
{
Bandomasis atvejis: 1
eilutė str1 = "MUO";
checkPalindrome (str1);
Bandomasis atvejis: 2
eilutė str2 = "ponia";
checkPalindrome (str2);
Bandomasis atvejis: 3
eilutė str3 = "MAKEUSEOF";
checkPalindrome (str3);
Bandomasis atvejis: 4
string str4 = "lenktyninis automobilis";
checkPalindrome (str4);
Bandomasis atvejis: 5
eilutė str5 = "mama";
checkPalindrome (str5);
grąžinti 0;
}
Išvestis:
Ne, pateikta eilutė nėra palindromas
Taip, pateikta eilutė yra palindromas
Ne, pateikta eilutė nėra palindromas
Taip, pateikta eilutė yra palindromas
Taip, pateikta eilutė yra palindromas
„Python“ programa, skirta patikrinti, ar tam tikra eilutė yra palindromas, ar ne
Žemiau pateikiamas „Python“ diegimas, siekiant nustatyti, ar nurodyta eilutė yra palindromas, ar ne:
# Funkcija patikrinti stygų palindromą
def patikrinimas Palindromas (str):
# Pažymėkite, ar nurodyta eilutė yra palindromas
vėliava = Tiesa
# Stygos ilgio radimas
n = len (str)
# Stygos konvertavimas į mažąsias raides
str = str. apatinė ()
# Inicijuojamas mažo indekso kintamasis
mažas = 0
# Inicializuojamas didelio indekso kintamasis
didelis = n-1
# Kilpos vykdymas iki aukšto yra didesnis nei žemas
o aukštas> žemas:
# Jei simboliai nesutampa, nustatykite vėliavą į „false“
# ir pertrauka nuo kilpos
jei str [didelis]! = str [žemas]:
vėliava = klaidinga
pertrauka
# Padidinkite mažo indekso kintamąjį
žemas = žemas + 1
# Sumažinti didelio indekso kintamąjį
aukštas = aukštas - 1
# Patikrinkite, ar žyma teisinga, ar klaidinga
jei vėliava:
spausdinti ("Taip, duota eilutė yra palindromas")
Kitas:
spausdinti ("Ne, pateikta eilutė nėra palindromas")
# Bandomasis atvejis: 1
str1 = "MUO"
checkPalindrome (str1)
# Bandomasis atvejis: 2
str2 = "ponia"
checkPalindrome (str2)
# Bandomasis atvejis: 3
str3 = "MAKEUSEOF"
checkPalindrome (str3)
# Bandomasis atvejis: 4
str4 = "lenktyninis automobilis"
checkPalindrome (str4)
# Bandomasis atvejis: 5
str5 = "mama"
checkPalindrome (str5)
Išvestis:
Ne, pateikta eilutė nėra palindromas
Taip, pateikta eilutė yra palindromas
Ne, pateikta eilutė nėra palindromas
Taip, pateikta eilutė yra palindromas
Taip, pateikta eilutė yra palindromas
C programa, skirta patikrinti, ar tam tikra styga yra palindromas, ar ne
Žemiau pateikiamas C įgyvendinimas, siekiant nustatyti, ar nurodyta eilutė yra palindromas, ar ne:
// Įskaitant bibliotekas
# įtraukti
# įtraukti
# įtraukti
# įtraukti
// Funkcija patikrinti stygų palindromą
negaliojantis checkPalindrome (char str [])
{
// Pažymėti, jei norite patikrinti, ar pateikta eilutė yra palindromas
bool flag = tiesa;
// Eilutės ilgio radimas
int n = strlen (str);
// Stygos pavertimas mažosiomis
už (int i = 0; i {
str [i] = toloweris (str [i]);
}
// Inicijuojamas mažo indekso kintamasis
int žemas = 0;
// Inicializuojamas didelio indekso kintamasis
int aukštas = n-1;
// Kilpos vykdymas iki aukšto yra didesnis nei žemas
o (aukštas> žemas)
{
// Jei simboliai nesutampa, nustatykite vėliavą į „false“
// ir nutraukti nuo kilpos
jei (str [didelis]! = str [žemas])
{
vėliava = klaidinga;
pertrauka;
}
// Padidinkite mažo indekso kintamąjį
žemas ++;
// Mažinti didelio indekso kintamąjį
didelis--;
}
// Patikrinkite, ar žyma teisinga, ar klaidinga
jei (vėliava)
{
printf ("Taip, duota eilutė yra palindromas \ n");
}
Kitas
{
printf ("Ne, pateikta eilutė nėra palindromas \ n");
}
grįžti;
}
int main ()
{
Bandomasis atvejis: 1
char str1 [] = "MUO";
checkPalindrome (str1);
Bandomasis atvejis: 2
char str2 [] = "ponia";
checkPalindrome (str2);
Bandomasis atvejis: 3
char str3 [] = "MAKEUSEOF";
checkPalindrome (str3);
Bandomasis atvejis: 4
char str4 [] = "lenktyninis automobilis";
checkPalindrome (str4);
Bandomasis atvejis: 5
char str5 [] = "mama";
checkPalindrome (str5);
grąžinti 0;
}
Išvestis:
Ne, pateikta eilutė nėra palindromas
Taip, pateikta eilutė yra palindromas
Ne, pateikta eilutė nėra palindromas
Taip, pateikta eilutė yra palindromas
Taip, pateikta eilutė yra palindromas
„JavaScript“ programa, skirta patikrinti, ar tam tikra eilutė yra palindromas, ar ne
Žemiau pateikiamas „JavaScript“ diegimas siekiant nustatyti, ar nurodyta eilutė yra palindromas, ar ne:
// Funkcija patikrinti stygų palindromą
funkcijos patikrinimasPalindromas (str) {
// Pažymėti, jei norite patikrinti, ar pateikta eilutė yra palindromas
var flag = true;
// Eilutės ilgio radimas
var n = str. ilgis;
// Stygos pavertimas mažosiomis
str = str.toLowerCase ();
// Inicijuojamas mažo indekso kintamasis
var mažas = 0;
// Inicializuojamas didelio indekso kintamasis
var didelis = n-1;
// Kilpos vykdymas iki aukšto yra didesnis nei žemas
o (aukštas> žemas) {
// Jei simboliai nesutampa, nustatykite vėliavą į „false“
// ir nutraukti nuo kilpos
jei (str [didelis]! = str [žemas]) {
vėliava = klaidinga;
pertrauka;
}
// Padidinkite mažo indekso kintamąjį
žemas ++;
// Mažinti didelio indekso kintamąjį
didelis--;
}
// Patikrinkite, ar žyma teisinga, ar klaidinga
jei (vėliava) {
console.log ("Taip, pateikta eilutė yra palindromas");
} Kitas {
console.log ("Ne, pateikta eilutė nėra palindromas");
}
}
Bandomasis atvejis: 1
var str1 = "MUO";
checkPalindrome (str1);
Bandomasis atvejis: 2
var str2 = "ponia";
checkPalindrome (str2);
Bandomasis atvejis: 3
var str3 = "MAKEUSEOF";
checkPalindrome (str3);
Bandomasis atvejis: 4
var str4 = "lenktyninis automobilis";
checkPalindrome (str4);
Bandomasis atvejis: 5
var str5 = "mama";
checkPalindrome (str5);
Išvestis:
Ne, pateikta eilutė nėra palindromas
Taip, pateikta eilutė yra palindromas
Ne, pateikta eilutė nėra palindromas
Taip, pateikta eilutė yra palindromas
Taip, pateikta eilutė yra palindromas
Sužinokite, kaip elgtis programuojant stygas
Darbas su stygomis yra neatsiejama programavimo dalis. Privalote žinoti, kaip naudoti eilutes bet kuria iš programavimo kalbų, pvz., „Python“, „JavaScript“, „C ++“ ir kt.
Jei norite pradėti kalbą, „Python“ yra puikus pasirinkimas.
Straipsnių naudojimas ir valdymas „Python“ gali pasirodyti sudėtingas, tačiau tai yra apgaulingai paprasta.
Skaitykite toliau
- Programavimas
- Kodavimo vadovėliai
Yuvraj yra kompiuterių bakalauro studentas Delio universitete, Indijoje. Jis aistringai domisi „Full Stack“ interneto plėtra. Kai nerašo, jis tyrinėja įvairių technologijų gylį.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!
Dar vienas žingsnis…!
Prašome patvirtinti savo el. Pašto adresą el. Laiške, kurį jums ką tik išsiuntėme.