Av Yuvraj Chandra
E-post

Är din sträng en palindrom? Oavsett om du använder Python, C ++ eller JavaScript, använd en av dessa algoritmer för att ta reda på det.

En sträng sägs vara en palindrom om originalsträngen och dess omvända är desamma. I den här artikeln lär du dig om algoritmen för att avgöra om den angivna strängen är en palindrom eller inte. Du lär dig också hur du implementerar denna algoritm på de mest populära programmeringsspråken som C ++, Python, C och JavaScript.

Exempel på palindromsträng

Nedan följer några exempel på palindrom och icke-palindrom strängar:

Algoritm för att avgöra om en given sträng är en palindrom eller inte

Algoritmer är helt enkelt en serie instruktioner som följs steg för steg för att göra något användbart eller lösa ett problem. Du kan lösa strängpalindromproblemet med algoritmen nedan:

  1. Deklarera en funktion som accepterar den givna strängen som en parameter.
  2. Skapa en boolesk variabel och ställ den till true. Låt variabeln vara flagga.
  3. instagram viewer
  4. Hitta längden på den givna strängen. Låt längden vara n.
  5. Konvertera den givna strängen till gemener för att göra jämförelsen mellan tecknen skiftlägeskänsliga.
  6. Initiera den låga indexvariabeln som låg och ställ in den på 0.
  7. Initiera den höga indexvariabeln som hög och ställ in den till n-1.
  8. Gör följande medan lågt är mindre än högt:
    • Jämför tecken med lågt index och högt index.
    • Om karaktärerna inte matchade ställer du in flaggan på falsk och bryter slingan.
    • Öka värdet på låg med 1 och minska värdet på hög med 1.
  9. Om flaggan är sann i slutet av funktionen betyder det att den angivna strängen är en palindrom.
  10. Om flaggan är falsk i slutet av funktionen betyder det att den givna strängen inte är en palindrom.

C ++ - program för att kontrollera om en given sträng är en palindrom eller inte

Nedan följer C ++ -implementeringen för att avgöra om den angivna strängen är en palindrom eller inte:

// Inklusive bibliotek
#omfatta
använder namnrymd std;
// Funktion för att kontrollera strängpalindrom
void checkPalindrome (strängstr)
{
// Flagga för att kontrollera om den angivna strängen är en palindrom
bool flagga = sant;
// Hitta strängens längd
int n = str. längd ();
// Konvertera strängen till gemener
för (int i = 0; i {
str [i] = tolower (str [i]);
}
// Initiera lågindexvariabel
int låg = 0;
// Initiera högindexvariabel
int hög = n-1;
// Att köra slingan tills hög är större än låg
medan (hög> låg)
{
// Om tecknen inte är desamma ställer du in flaggan på falsk
// och bryta sig från slingan
if (str [high]! = str [low])
{
flagga = falsk;
ha sönder;
}
// Öka den låga indexvariabeln
låg ++;
// Minska den höga indexvariabeln
hög--;
}
// Kontrollera om flaggan är sant eller falskt
if (flagga)
{
cout << "Ja, den givna strängen är en palindrom" << endl;
}
annan
{
cout << "Nej, den givna strängen är inte en palindrom" << endl;
}
lämna tillbaka;
}
int main ()
{
// Testfall: 1
sträng str1 = "MUO";
checkPalindrome (str1);
// Testfall: 2
sträng str2 = "fru";
checkPalindrome (str2);
// Testfall: 3
sträng str3 = "MAKEUSEOF";
checkPalindrome (str3);
// Testfall: 4
sträng str4 = "racecar";
checkPalindrome (str4);
// Testfall: 5
sträng str5 = "mamma";
checkPalindrome (str5);
returnera 0;
}

Produktion:

Nej, den givna strängen är inte ett palindrom 
Ja, den givna strängen är en palindrom
Nej, den givna strängen är inte ett palindrom
Ja, den givna strängen är en palindrom
Ja, den givna strängen är en palindrom

Python-programmet för att kontrollera om en given sträng är en palindrom eller inte

Nedan följer Python-implementeringen för att avgöra om den angivna strängen är en palindrom eller inte:

# Funktion för att kontrollera strängpalindrom
def checkPalindrome (str):
# Flagga för att kontrollera om den angivna strängen är en palindrom
flagga = Sant
# Hitta strängens längd
n = len (str)
# Konvertera strängen till gemener
str = str. lägre ()
# Initierar lågindexvariabel
låg = 0
# Initiera högindexvariabel
hög = n-1
# Att köra slingan tills hög är större än låg
medan hög> låg:
# Om tecknen inte är desamma ställer du in flaggan på falsk
# och bryt dig från slingan
om str [hög]! = str [låg]:
flagga = Falskt
ha sönder
# Öka den låga indexvariabeln
låg = låg + 1
# Minska den höga indexvariabeln
hög = hög - 1
# Kontrollera om flaggan är sant eller falskt
om flagga:
tryck ("Ja, den givna strängen är en palindrom")
annan:
tryck ("Nej, den givna strängen är inte en palindrom")
# Testfall: 1
str1 = "MUO"
checkPalindrome (str1)
# Testfall: 2
str2 = "fru"
checkPalindrome (str2)
# Testfall: 3
str3 = "MAKEUSEOF"
checkPalindrome (str3)
# Testfall: 4
str4 = "racerbil"
checkPalindrome (str4)
# Testfall: 5
str5 = "mamma"
checkPalindrome (str5)

Produktion:

Nej, den givna strängen är inte ett palindrom
Ja, den givna strängen är en palindrom
Nej, den givna strängen är inte ett palindrom
Ja, den givna strängen är en palindrom
Ja, den givna strängen är en palindrom

C Program för att kontrollera om en given sträng är en palindrom eller inte

Nedan följer C-implementeringen för att avgöra om den angivna strängen är en palindrom eller inte:

// Inklusive bibliotek
#omfatta
#omfatta
#omfatta
#omfatta
// Funktion för att kontrollera strängpalindrom
void checkPalindrome (char str [])
{
// Flagga för att kontrollera om den angivna strängen är en palindrom
bool flagga = sant;
// Hitta strängens längd
int n = strlen (str);
// Konvertera strängen till gemener
för (int i = 0; i {
str [i] = tolower (str [i]);
}
// Initiera lågindexvariabel
int låg = 0;
// Initiera högindexvariabel
int hög = n-1;
// Att köra slingan tills hög är större än låg
medan (hög> låg)
{
// Om tecknen inte är desamma ställer du in flaggan på falsk
// och bryta sig från slingan
if (str [high]! = str [low])
{
flagga = falsk;
ha sönder;
}
// Öka den låga indexvariabeln
låg ++;
// Minska den höga indexvariabeln
hög--;
}
// Kontrollera om flaggan är sant eller falskt
if (flagga)
{
printf ("Ja, den givna strängen är en palindrom \ ⁠n");
}
annan
{
printf ("Nej, den givna strängen är inte en palindrom \ ⁠n");
}
lämna tillbaka;
}
int main ()
{
// Testfall: 1
char str1 [] = "MUO";
checkPalindrome (str1);
// Testfall: 2
char str2 [] = "fru";
checkPalindrome (str2);
// Testfall: 3
char str3 [] = "MAKEUSEOF";
checkPalindrome (str3);
// Testfall: 4
char str4 [] = "racerbil";
checkPalindrome (str4);
// Testfall: 5
char str5 [] = "mamma";
checkPalindrome (str5);
returnera 0;
}

Produktion:

Nej, den givna strängen är inte ett palindrom 
Ja, den givna strängen är en palindrom
Nej, den givna strängen är inte ett palindrom
Ja, den givna strängen är en palindrom
Ja, den givna strängen är en palindrom

JavaScript-program för att kontrollera om en given sträng är en palindrom eller inte

Nedan följer JavaScript-implementeringen för att avgöra om den angivna strängen är en palindrom eller inte:

// Funktion för att kontrollera strängpalindrom
funktionskontrollPalindrom (str) {
// Flagga för att kontrollera om den angivna strängen är en palindrom
var flagga = sant;
// Hitta strängens längd
var n = str. längd;
// Konvertera strängen till gemener
str = str.toLowerCase ();
// Initiera lågindexvariabel
var låg = 0;
// Initiera högindexvariabel
var hög = n-1;
// Att köra slingan tills hög är större än låg
medan (hög> låg) {
// Om tecknen inte är desamma ställer du in flaggan på falsk
// och bryta sig från slingan
if (str [high]! = str [low]) {
flagga = falsk;
ha sönder;
}
// Öka den låga indexvariabeln
låg ++;
// Minska den höga indexvariabeln
hög--;
}
// Kontrollera om flaggan är sant eller falskt
om (flagga) {
console.log ("Ja, den angivna strängen är en palindrom");
} annat {
console.log ("Nej, den givna strängen är inte en palindrom");
}
}
// Testfall: 1
var str1 = "MUO";
checkPalindrome (str1);
// Testfall: 2
var str2 = "fru";
checkPalindrome (str2);
// Testfall: 3
var str3 = "MAKEUSEOF";
checkPalindrome (str3);
// Testfall: 4
var str4 = "racerbil";
checkPalindrome (str4);
// Testfall: 5
var str5 = "mamma";
checkPalindrome (str5);

Produktion:

Nej, den givna strängen är inte ett palindrom
Ja, den givna strängen är en palindrom
Nej, den givna strängen är inte ett palindrom
Ja, den givna strängen är en palindrom
Ja, den givna strängen är en palindrom

Lär dig hur man hanterar strängar i programmering

Att arbeta med strängar är en integrerad del av programmeringen. Du måste veta hur du använder och manipulerar strängar på något av programmeringsspråken som Python, JavaScript, C ++, etc.

Om du letar efter ett språk att börja med är Python ett utmärkt val.

E-post
Lär dig Python? Så här hanterar du strängar

Att använda och manipulera strängar i Python kan verka svårt, men det är bedrägligt enkelt.

Läs Nästa

Relaterade ämnen
  • Programmering
  • Kodningshandledning
Om författaren
Yuvraj Chandra (13 artiklar publicerade)

Yuvraj är en doktorand vid datavetenskap vid University of Delhi, Indien. Han brinner för Full Stack webbutveckling. När han inte skriver utforskar han djupet i olika tekniker.

Mer från Yuvraj Chandra

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e-böcker och exklusiva erbjudanden!

Ett steg till…!

Bekräfta din e-postadress i e-postmeddelandet som vi just skickade till dig.

.