Av Yuvraj Chandra
DelekvitringE-post

C ++, Python, C eller JavaScript: uansett hvilken du bruker, bruk denne algoritmen til å bestemme symmetriske strenger.

En streng sies å være symmetrisk hvis begge halvdelene av strengen er like. I denne artikkelen lærer du en algoritme for å avgjøre om en gitt streng er symmetrisk eller ikke. Du lærer også hvordan du implementerer denne algoritmen på de mest populære programmeringsspråkene som C ++, Python, C og JavaScript.

Problemstilling

Du får en streng. Du må finne ut om den gitte strengen er symmetrisk eller ikke.

Eksempel 1: La str = "abab".

Det gitte er symmetrisk ettersom begge halvdelene av strengen er like.

Dermed er utgangen "Ja, den gitte strengen er symmetrisk".

Eksempel 2: La str = "frue".

Hvis lengden på strengen er merkelig, ignoreres det midterste tegnet i strengen. Derfor er første halvdel = "ma" og andre halvdel = "am". De to halvdelene er ikke like.

Dermed er utgangen "Nei, den gitte strengen er ikke symmetrisk".

instagram viewer

Eksempel 3: La str = "madma".

1. omgang = "ma" og 2. omgang = "ma". Begge halvdelene av strengen er like.

Dermed er utgangen "Ja, den gitte strengen er symmetrisk".

Algoritme for å avgjøre om en gitt streng er symmetrisk eller ikke

Du kan bestemme om en gitt streng er symmetrisk eller ikke ved å følge fremgangsmåten nedenfor:

  1. Finn lengden på strengen.
  2. Finn midIndex av strengen.
    • Hvis lengden på strengen er jevn, midIndex = lengde / 2.
    • Hvis strengens lengde er merkelig, midIndex = (lengde / 2) + 1. I dette tilfellet ignoreres midtkarakteren til strengen for sammenligning.
  3. Initialiser to pekervariabler peker1 og peker2. peker1 vil lagre indeksen til det første tegnet (0) i strengen og peker2 lagrer indeksen til det midterste tegnet (midIndex) i strengen.
  4. Sammenlign nå de tilsvarende tegnene i begge halvdelene av strengen ved hjelp av a samtidig som Løkke. Kjør en samtidig som løkke til peker1.
  5. Sammenlign de tilsvarende tegnene i indeksene peker1 og peker2.
  6. Hvis noe tilsvarende tegn blir funnet ulikt, returner falsk. Og hvis ingen tilsvarende tegn blir funnet ulik, kom tilbake ekte.
  7. Sørg også for å øke verdien av peker1 og peker2 i hver iterasjon.

C ++ - program for å bestemme om en gitt streng er symmetrisk eller ikke

Nedenfor er C ++ - programmet for å bestemme om en gitt streng er symmetrisk eller ikke:

// C ++ - program for å kontrollere om strengen er symmetrisk eller ikke
#inkludere
ved hjelp av navneområde std;
// Funksjon for å kontrollere om strengen er symmetrisk eller ikke
bool isSymmetrical (streng str)
{
int midIndex;
int lengde = str.length ();
// Hvis lengden på strengen er jevn
hvis (lengde % 2 == 0)
{
midIndex = lengde/2;
}
// Hvis lengden på strengen er merkelig
ellers
{
midIndex = lengde/2 + 1;
}
int peker1 = 0;
int pointer2 = midIndex;
mens (peker1{
hvis (str [peker1] == str [peker2])
{
peker1 += 1;
peker2 += 1;
}
ellers
{
return falsk;
}
}
returner sant;
}
// Sjåførkode
int main ()
{
// Testcase: 1
string str1 = "abab";
cout << "String 1:" << str1 << endl;
hvis (isSymmetrical (str1))
{
cout << "Ja, den gitte strengen er symmetrisk" << endl;
}
ellers
{
cout << "Nei, den gitte strengen er ikke symmetrisk" << endl;
}
// Testcase: 2
string str2 = "frue";
cout << "String 2:" << str2 << endl;
hvis (isSymmetrical (str2))
{
cout << "Ja, den gitte strengen er symmetrisk" << endl;
}
ellers
{
cout << "Nei, den gitte strengen er ikke symmetrisk" << endl;
}
// Testcase: 3
string str3 = "madma";
cout << "String 3:" << str3 << endl;
hvis (isSymmetrical (str3))
{
cout << "Ja, den gitte strengen er symmetrisk" << endl;
}
ellers
{
cout << "Nei, den gitte strengen er ikke symmetrisk" << endl;
}
// Testcase: 4
string str4 = "borgerlig";
cout << "String 4:" << str4 << endl;
hvis (isSymmetrical (str4))
{
cout << "Ja, den gitte strengen er symmetrisk" << endl;
}
ellers
{
cout << "Nei, den gitte strengen er ikke symmetrisk" << endl;
}
// Testcase: 5
string str5 = "khokho";
cout << "String 5:" << str5 << endl;
hvis (isSymmetrical (str5))
{
cout << "Ja, den gitte strengen er symmetrisk" << endl;
}
ellers
{
cout << "Nei, den gitte strengen er ikke symmetrisk" << endl;
}
retur 0;
}

Produksjon:

String 1: abab
Ja, den gitte strengen er symmetrisk
String 2: fru
Nei, den gitte strengen er ikke symmetrisk
String 3: madma
Ja, den gitte strengen er symmetrisk
String 4: borgerlig
Nei, den gitte strengen er ikke symmetrisk
String 5: khokho
Ja, den gitte strengen er symmetrisk

I slekt: Slik reverserer du en streng i C ++, Python og JavaScript

Python -program for å avgjøre om en gitt streng er symmetrisk eller ikke

Nedenfor er Python -programmet for å avgjøre om en gitt streng er symmetrisk eller ikke:

# Python -program for å sjekke om strengen er symmetrisk eller ikke
# Funksjon for å sjekke om strengen er symmetrisk eller ikke
def isSymmetrical (str):
midIndex = 0
lengde = len (str)
hvis lengde%2 == 0:
midIndex = lengde // 2
ellers:
midIndex = lengde // 2 + 1
peker1 = 0
peker2 = midIndex
mens pekeren 1hvis (str [peker1] == str [peker2]):
peker1 += 1
peker2 += 1
ellers:
return False
return True
# Testcase: 1
str1 = "abab"
print ("String 1:", str1)
hvis (isSymmetrical (str1)):
print ("Ja, den gitte strengen er symmetrisk")
ellers:
print ("Nei, den gitte strengen er ikke symmetrisk")
# Testcase: 2
str2 = "frue"
print ("String 2:", str2)
hvis (isSymmetrical (str2)):
print ("Ja, den gitte strengen er symmetrisk")
ellers:
print ("Nei, den gitte strengen er ikke symmetrisk")
# Testcase: 3
str3 = "madma"
print ("String 3:", str3)
hvis (isSymmetrical (str3)):
print ("Ja, den gitte strengen er symmetrisk")
ellers:
print ("Nei, den gitte strengen er ikke symmetrisk")
# Testcase: 4
str4 = "borgerlig"
print ("String 4:", str4)
hvis (isSymmetrical (str4)):
print ("Ja, den gitte strengen er symmetrisk")
ellers:
print ("Nei, den gitte strengen er ikke symmetrisk")
# Testcase: 5
str5 = "khokho"
print ("String 5:", str5)
hvis (isSymmetrical (str5)):
print ("Ja, den gitte strengen er symmetrisk")
ellers:
print ("Nei, den gitte strengen er ikke symmetrisk")

Produksjon:

String 1: abab
Ja, den gitte strengen er symmetrisk
String 2: fru
Nei, den gitte strengen er ikke symmetrisk
String 3: madma
Ja, den gitte strengen er symmetrisk
String 4: borgerlig
Nei, den gitte strengen er ikke symmetrisk
String 5: khokho
Ja, den gitte strengen er symmetrisk

I slekt: Lærer du Python? Her er hvordan du manipulerer strenger

JavaScript-program for å avgjøre om en gitt streng er symmetrisk eller ikke

Nedenfor er JavaScript -programmet for å avgjøre om en gitt streng er symmetrisk eller ikke:

// JavaScript -program for å sjekke om strengen er symmetrisk eller ikke
// Funksjon for å kontrollere om strengen er symmetrisk eller ikke
funksjonen erSymmetrisk (str) {
var midIndex;
var lengde = str. lengde;
// Hvis lengden på strengen er jevn
hvis (lengde % 2 == 0) {
midIndex = Math.floor (lengde/2);
}
// Hvis lengden på strengen er merkelig
annet {
midIndex = Matematikkgulv (lengde/2) + 1;
}
var pointer1 = 0;
var pointer2 = midIndex;
mens (peker1if (str [peker1] == str [peker2]) {
peker1 += 1;
peker2 += 1;
} annet {
return falsk;
}
}
returner sant;
}
// Testcase: 1
var str1 = "abab";
document.write ("String 1:" + str1 + "
");
if (isSymmetrical (str1)) {
document.write ("Ja, den gitte strengen er symmetrisk" + "
");
} annet {
document.write ("Nei, den gitte strengen er ikke symmetrisk" + "
");
}
// Testcase: 2
var str2 = "frue";
document.write ("String 2:" + str2 + "
");
if (isSymmetrical (str2)) {
document.write ("Ja, den gitte strengen er symmetrisk" + "
");
} annet {
document.write ("Nei, den gitte strengen er ikke symmetrisk" + "
");
}
// Testcase: 3
var str3 = "madma";
document.write ("String 3:" + str3 + "
");
if (isSymmetrical (str3)) {
document.write ("Ja, den gitte strengen er symmetrisk" + "
");
} annet {
document.write ("Nei, den gitte strengen er ikke symmetrisk" + "
");
}
// Testcase: 4
var str4 = "borgerlig";
document.write ("String 4:" + str4 + "
");
if (isSymmetrical (str4)) {
document.write ("Ja, den gitte strengen er symmetrisk" + "
");
} annet {
document.write ("Nei, den gitte strengen er ikke symmetrisk" + "
");
}
// Testcase: 5
var str5 = "khokho";
document.write ("String 5:" + str5 + "
");
if (isSymmetrical (str5)) {
document.write ("Ja, den gitte strengen er symmetrisk" + "
");
} annet {
document.write ("Nei, den gitte strengen er ikke symmetrisk" + "
");
}

Produksjon:

String 1: abab
Ja, den gitte strengen er symmetrisk
String 2: fru
Nei, den gitte strengen er ikke symmetrisk
String 3: madma
Ja, den gitte strengen er symmetrisk
String 4: borgerlig
Nei, den gitte strengen er ikke symmetrisk
String 5: khokho
Ja, den gitte strengen er symmetrisk

I slekt: Hvordan finne den vanligste karakteren i en streng

Løs problemer basert på strenger

Strenger er et av de viktigste temaene for programmeringsintervjuer. Du må løse noen av de berømte programmeringsproblemene basert på strenger som å sjekke om en streng er et palindrom, sjekk hvis to strenger er anagrammer av hverandre, finner du det vanligste tegnet i en streng, reverserer en streng, etc. hvis du ønsker å være helt forberedt.

DelekvitringE-post
Hvordan sjekke om en streng er et palindrom

Er strengen din en palindrom? Enten du bruker Python, C ++ eller JavaScript, bruk en av disse algoritmene for å finne ut.

Les Neste

Relaterte temaer
  • Programmering
  • JavaScript
  • Python
  • Opplæringsprogrammer for koding
  • C Programmering
Om forfatteren
Yuvraj Chandra (50 artikler publisert)

Yuvraj er en informatikkstudent ved University of Delhi, India. Han brenner for Full Stack webutvikling. Når han ikke skriver, utforsker han dybden i forskjellige teknologier.

Mer fra Yuvraj Chandra

Abonner på vårt nyhetsbrev

Bli med på nyhetsbrevet vårt for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Klikk her for å abonnere