C ++, Python, C eller JavaScript: uanset hvilken du bruger, skal du bruge denne algoritme til at bestemme symmetriske strenge.
En streng siges at være symmetrisk, hvis begge halvdele af strengen er ens. I denne artikel lærer du en algoritme til at afgøre, om en given streng er symmetrisk eller ej. Du lærer også, hvordan du implementerer denne algoritme på de mest populære programmeringssprog som C ++, Python, C og JavaScript.
Problemformulering
Du får en snor. Du skal bestemme, om den givne streng er symmetrisk eller ej.
Eksempel 1: Lad str = "abab".
Det givne er symmetrisk, da begge halvdele af strengen er ens.
Således er output "Ja, den givne streng er symmetrisk".
Eksempel 2: Lad str = "fru".
Hvis strengens længde er ulige, ignoreres strengens midterste tegn. Derfor er 1. halvår = "ma" og 2. halvår = "am". De to halvdele er ikke ens.
Således er output "Nej, den givne streng er ikke symmetrisk".
Eksempel 3: Lad str = "madma".
1. halvleg = "ma" og 2. halvår = "ma". Begge halvdele af strengen er ens.
Således er output "Ja, den givne streng er symmetrisk".
Algoritme til at afgøre, om en given streng er symmetrisk eller ej
Du kan afgøre, om en given streng er symmetrisk eller ej ved at følge fremgangsmåden herunder:
- Find strengens længde.
- Find midIndex af strengen.
- Hvis strengens længde er lige, midIndex = længde/2.
- Hvis strengens længde er ulige, midIndex = (længde/2) + 1. I dette tilfælde ignoreres strengens midterste tegn til sammenligning.
- Initialiser to markørvariabler markør1 og markør2. markør1 gemmer indekset for strengens første tegn (0) og markør2 gemmer indekset for strengens mellemtegn (midIndex).
- Sammenlign nu de tilsvarende tegn i begge halvdele af strengen ved hjælp af a mens sløjfe. Kør a mens sløjfe indtil markør1.
- Sammenlign de tilsvarende tegn ved indekser markør1 og markør2.
- Hvis et tilsvarende tegn findes uensartet, skal du vende tilbage falsk. Og hvis der ikke findes nogen tilsvarende tegn, skal du vende tilbage rigtigt.
- Sørg også for at øge værdien af markør1 og markør2 i hver iteration.
C ++ - program til at afgøre, om en given streng er symmetrisk eller ej
Nedenfor er C ++ - programmet til at afgøre, om en given streng er symmetrisk eller ej:
// C ++ - program for at kontrollere, om strengen er symmetrisk eller ej
#omfatte
ved hjælp af navneområde std;
// Funktion til at kontrollere, om strengen er symmetrisk eller ej
bool isSymmetrical (string str)
{
int midIndex;
int længde = str.length ();
// Hvis strengens længde er lige
hvis (længde % 2 == 0)
{
midIndex = længde/2;
}
// Hvis strengens længde er ulige
andet
{
midIndex = længde/2 + 1;
}
int pointer1 = 0;
int pointer2 = midIndex;
mens (pointer1{
hvis (str [pointer1] == str [pointer2])
{
markør1 += 1;
pointer2 += 1;
}
andet
{
return falsk;
}
}
vende tilbage sandt;
}
// Driverkode
int main ()
{
// Testcase: 1
string str1 = "abab";
cout << "String 1:" << str1 << endl;
hvis (isSymmetrical (str1))
{
cout << "Ja, den givne streng er symmetrisk" << endl;
}
andet
{
cout << "Nej, den givne streng er ikke symmetrisk" << endl;
}
// Testcase: 2
string str2 = "fru";
cout << "String 2:" << str2 << endl;
hvis (isSymmetrical (str2))
{
cout << "Ja, den givne streng er symmetrisk" << endl;
}
andet
{
cout << "Nej, den givne streng er ikke symmetrisk" << endl;
}
// Testcase: 3
string str3 = "madma";
cout << "String 3:" << str3 << endl;
hvis (isSymmetrical (str3))
{
cout << "Ja, den givne streng er symmetrisk" << endl;
}
andet
{
cout << "Nej, den givne streng er ikke symmetrisk" << endl;
}
// Testcase: 4
string str4 = "borgerlig";
cout << "String 4:" << str4 << endl;
hvis (isSymmetrical (str4))
{
cout << "Ja, den givne streng er symmetrisk" << endl;
}
andet
{
cout << "Nej, den givne streng er ikke symmetrisk" << endl;
}
// Test sag: 5
string str5 = "khokho";
cout << "String 5:" << str5 << endl;
hvis (isSymmetrical (str5))
{
cout << "Ja, den givne streng er symmetrisk" << endl;
}
andet
{
cout << "Nej, den givne streng er ikke symmetrisk" << endl;
}
returnere 0;
}
Produktion:
String 1: abab
Ja, den givne streng er symmetrisk
String 2: fru
Nej, den givne streng er ikke symmetrisk
Streng 3: madma
Ja, den givne streng er symmetrisk
String 4: borgerlig
Nej, den givne streng er ikke symmetrisk
Streng 5: khokho
Ja, den givne streng er symmetrisk
Relaterede: Sådan vendes en streng i C ++, Python og JavaScript
Python -program til at afgøre, om en given streng er symmetrisk eller ej
Nedenfor er Python -programmet til at afgøre, om en given streng er symmetrisk eller ej:
# Python -program for at kontrollere, om strengen er symmetrisk eller ej
# Funktion til at kontrollere, om strengen er symmetrisk eller ej
def isSymmetrical (str):
midIndex = 0
længde = len (str)
hvis længde%2 == 0:
midIndex = længde // 2
andet:
midIndex = længde // 2 + 1
pointer1 = 0
pointer2 = midIndex
mens markøren 1hvis (str [pointer1] == str [pointer2]):
markør1 += 1
pointer2 += 1
andet:
return False
return True
# Testcase: 1
str1 = "abab"
print ("streng 1:", str1)
hvis (isSymmetrical (str1)):
print ("Ja, den givne streng er symmetrisk")
andet:
print ("Nej, den givne streng er ikke symmetrisk")
# Testcase: 2
str2 = "fru"
print ("streng 2:", str2)
hvis (isSymmetrical (str2)):
print ("Ja, den givne streng er symmetrisk")
andet:
print ("Nej, den givne streng er ikke symmetrisk")
# Testcase: 3
str3 = "madma"
print ("String 3:", str3)
hvis (isSymmetrical (str3)):
print ("Ja, den givne streng er symmetrisk")
andet:
print ("Nej, den givne streng er ikke symmetrisk")
# Testcase: 4
str4 = "borgerlig"
print ("streng 4:", str4)
hvis (isSymmetrical (str4)):
print ("Ja, den givne streng er symmetrisk")
andet:
print ("Nej, den givne streng er ikke symmetrisk")
# Testcase: 5
str5 = "khokho"
print ("streng 5:", str5)
hvis (isSymmetrical (str5)):
print ("Ja, den givne streng er symmetrisk")
andet:
print ("Nej, den givne streng er ikke symmetrisk")
Produktion:
String 1: abab
Ja, den givne streng er symmetrisk
String 2: fru
Nej, den givne streng er ikke symmetrisk
Streng 3: madma
Ja, den givne streng er symmetrisk
String 4: borgerlig
Nej, den givne streng er ikke symmetrisk
Streng 5: khokho
Ja, den givne streng er symmetrisk
Relaterede: Lærer du Python? Her er hvordan man manipulerer strenge
JavaScript -program til at afgøre, om en given streng er symmetrisk eller ej
Nedenfor er JavaScript -programmet til at afgøre, om en given streng er symmetrisk eller ej:
// JavaScript -program for at kontrollere, om strengen er symmetrisk eller ej
// Funktion til at kontrollere, om strengen er symmetrisk eller ej
funktion erSymmetrisk (str) {
var midIndex;
var længde = str. længde;
// Hvis strengens længde er lige
hvis (længde % 2 == 0) {
midIndex = Matematikgulv (længde/2);
}
// Hvis strengens længde er ulige
andet {
midIndex = Matematikgulv (længde/2) + 1;
}
var pointer1 = 0;
var pointer2 = midIndex;
mens (pointer1hvis (str [pointer1] == str [pointer2]) {
markør1 += 1;
pointer2 += 1;
} andet {
return falsk;
}
}
vende tilbage sandt;
}
// Testcase: 1
var str1 = "abab";
document.write ("streng 1:" + str1 + "
");
hvis (isSymmetrical (str1)) {
document.write ("Ja, den givne streng er symmetrisk" + "
");
} andet {
document.write ("Nej, den givne streng er ikke symmetrisk" + "
");
}
// Testcase: 2
var str2 = "fru";
document.write ("String 2:" + str2 + "
");
hvis (isSymmetrical (str2)) {
document.write ("Ja, den givne streng er symmetrisk" + "
");
} andet {
document.write ("Nej, den givne streng er ikke symmetrisk" + "
");
}
// Testcase: 3
var str3 = "madma";
document.write ("String 3:" + str3 + "
");
hvis (isSymmetrical (str3)) {
document.write ("Ja, den givne streng er symmetrisk" + "
");
} andet {
document.write ("Nej, den givne streng er ikke symmetrisk" + "
");
}
// Testcase: 4
var str4 = "borgerlig";
document.write ("String 4:" + str4 + "
");
hvis (isSymmetrical (str4)) {
document.write ("Ja, den givne streng er symmetrisk" + "
");
} andet {
document.write ("Nej, den givne streng er ikke symmetrisk" + "
");
}
// Test sag: 5
var str5 = "khokho";
document.write ("String 5:" + str5 + "
");
hvis (isSymmetrical (str5)) {
document.write ("Ja, den givne streng er symmetrisk" + "
");
} andet {
document.write ("Nej, den givne streng er ikke symmetrisk" + "
");
}
Produktion:
String 1: abab
Ja, den givne streng er symmetrisk
String 2: fru
Nej, den givne streng er ikke symmetrisk
Streng 3: madma
Ja, den givne streng er symmetrisk
String 4: borgerlig
Nej, den givne streng er ikke symmetrisk
Streng 5: khokho
Ja, den givne streng er symmetrisk
Relaterede: Sådan finder du den hyppigst forekommende karakter i en streng
Løs problemer baseret på strenge
Strenge er et af de vigtigste emner til programmering af interviews. Du skal løse nogle af de berømte programmeringsproblemer baseret på strenge som at kontrollere, om en streng er et palindrom, tjek hvis to strenge er anagrammer over hinanden, skal du finde det mest almindelige tegn i en streng, vende en streng, etc. hvis du ønsker at være fuldt forberedt.
Er din streng en palindrom? Uanset om du bruger Python, C ++ eller JavaScript, skal du bruge en af disse algoritmer for at finde ud af det.
Læs Næste
- Programmering
- JavaScript
- Python
- Kodning Tutorials
- C Programmering
Yuvraj er en studerende på datalogi ved University of Delhi, Indien. Han brænder for Full Stack Webudvikling. Når han ikke skriver, udforsker han dybden af forskellige teknologier.
Abonner på vores nyhedsbrev
Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!
Klik her for at abonnere