Av Yuvraj Chandra
Dela med sigTweetE-post

C ++, Python, C eller JavaScript: oavsett vilken du använder, använd denna algoritm för att bestämma symmetriska strängar.

En sträng sägs vara symmetrisk om båda halvorna av strängen är desamma. I den här artikeln lär du dig en algoritm för att avgöra om en given sträng är symmetrisk 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.

Problemmeddelande

Du får en sträng. Du måste avgöra om den givna strängen är symmetrisk eller inte.

Exempel 1: Låt str = "abab".

Det givna är symmetriskt eftersom båda halvorna av strängen är desamma.

Således är utgången "Ja, den givna strängen är symmetrisk".

Exempel 2: Låt str = "fru".

Om strängens längd är udda ignoreras strängens mellersta tecken. Därför är första halvan = "ma" och andra halvan = "am". De två halvorna är inte desamma.

Således är utgången "Nej, den givna strängen är inte symmetrisk".

instagram viewer

Exempel 3: Låt str = "madma".

1: a halvan = "ma" och andra halvan = "ma". Båda halvorna av strängen är desamma.

Således är utgången "Ja, den givna strängen är symmetrisk".

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

Du kan avgöra om en given sträng är symmetrisk eller inte genom att följa tillvägagångssättet nedan:

  1. Hitta strängens längd.
  2. Hitta strängens midIndex.
    • Om strängens längd är jämn, midIndex = längd/2.
    • Om strängens längd är udda, midIndex = (längd/2) + 1. I det här fallet ignoreras strängens mellersta tecken för jämförelse.
  3. Initiera två pekarvariabler pekare1 och pekare2. pekare1 kommer att lagra indexet för det första tecknet (0) i strängen och pekare2 lagrar indexet för strängens mittkaraktär (midIndex).
  4. Jämför nu motsvarande tecken för båda stränghalvorna med hjälp av a medan slinga. Kör a medan slinga tills pekare1.
  5. Jämför motsvarande tecken vid index pekare1 och pekare2.
  6. Om någon motsvarande karaktär är olik, återvänd falsk. Och om det inte finns några motsvarande tecken, gå tillbaka Sann.
  7. Se också till att öka värdet på pekare1 och pekare2 i varje iteration.

C ++ - program för att avgöra om en given sträng är symmetrisk eller inte

Nedan visas C ++ - programmet för att avgöra om en given sträng är symmetrisk eller inte:

// C ++ - program för att kontrollera om strängen är symmetrisk eller inte
#omfatta
med namnutrymme std;
// Funktion för att kontrollera om strängen är symmetrisk eller inte
bool isSymmetrical (strängstr)
{
int midIndex;
int längd = str.length ();
// Om strängens längd är jämn
if (längd % 2 == 0)
{
midIndex = längd/2;
}
// Om strängens längd är udda
annan
{
midIndex = längd/2 + 1;
}
int pekare1 = 0;
int pointer2 = midIndex;
medan (pekare1{
if (str [pekare1] == str [pekare2])
{
pekare1 += 1;
pekare2 += 1;
}
annan
{
return falsk;
}
}
återvända sant;
}
// Förarkod
int main ()
{
// Testfall: 1
string str1 = "abab";
cout << "Sträng 1:" << str1 << endl;
if (isSymmetrical (str1))
{
cout << "Ja, den givna strängen är symmetrisk" << endl;
}
annan
{
cout << "Nej, den givna strängen är inte symmetrisk" << endl;
}
// Testfall: 2
string str2 = "fru";
cout << "Sträng 2:" << str2 << endl;
if (isSymmetrical (str2))
{
cout << "Ja, den givna strängen är symmetrisk" << endl;
}
annan
{
cout << "Nej, den givna strängen är inte symmetrisk" << endl;
}
// Testfall: 3
string str3 = "madma";
cout << "Sträng 3:" << str3 << endl;
if (isSymmetrical (str3))
{
cout << "Ja, den givna strängen är symmetrisk" << endl;
}
annan
{
cout << "Nej, den givna strängen är inte symmetrisk" << endl;
}
// Testfall: 4
string str4 = "civic";
cout << "Sträng 4:" << str4 << endl;
if (isSymmetrical (str4))
{
cout << "Ja, den givna strängen är symmetrisk" << endl;
}
annan
{
cout << "Nej, den givna strängen är inte symmetrisk" << endl;
}
// Testfall: 5
string str5 = "khokho";
cout << "Sträng 5:" << str5 << endl;
if (isSymmetrical (str5))
{
cout << "Ja, den givna strängen är symmetrisk" << endl;
}
annan
{
cout << "Nej, den givna strängen är inte symmetrisk" << endl;
}
returnera 0;
}

Produktion:

Sträng 1: abab
Ja, den givna strängen är symmetrisk
Sträng 2: fru
Nej, den angivna strängen är inte symmetrisk
Sträng 3: madma
Ja, den givna strängen är symmetrisk
Sträng 4: civic
Nej, den angivna strängen är inte symmetrisk
Sträng 5: khokho
Ja, den givna strängen är symmetrisk

Relaterad: Hur man gör om en sträng i C ++, Python och JavaScript

Python -program för att avgöra om en given sträng är symmetrisk eller inte

Nedan visas Python -programmet för att avgöra om en given sträng är symmetrisk eller inte:

# Python -program för att kontrollera om strängen är symmetrisk eller inte
# Funktion för att kontrollera om strängen är symmetrisk eller inte
def isSymmetrical (str):
midIndex = 0
längd = len (str)
om längd%2 == 0:
midIndex = längd // 2
annan:
midIndex = längd // 2 + 1
pekare1 = 0
pekare2 = midIndex
medan pekaren1if (str [pekare1] == str [pekare2]):
pekare1 += 1
pekare2 += 1
annan:
return False
return True
# Testfall: 1
str1 = "abab"
print ("Sträng 1:", str1)
if (isSymmetrical (str1)):
print ("Ja, den givna strängen är symmetrisk")
annan:
tryck ("Nej, den angivna strängen är inte symmetrisk")
# Testfall: 2
str2 = "fru"
print ("Sträng 2:", str2)
if (isSymmetrical (str2)):
print ("Ja, den givna strängen är symmetrisk")
annan:
tryck ("Nej, den angivna strängen är inte symmetrisk")
# Testfall: 3
str3 = "madma"
print ("Sträng 3:", str3)
if (isSymmetrical (str3)):
print ("Ja, den givna strängen är symmetrisk")
annan:
tryck ("Nej, den angivna strängen är inte symmetrisk")
# Testfall: 4
str4 = "medborgerlig"
print ("Sträng 4:", str4)
if (isSymmetrical (str4)):
print ("Ja, den givna strängen är symmetrisk")
annan:
tryck ("Nej, den angivna strängen är inte symmetrisk")
# Testfall: 5
str5 = "khokho"
print ("Sträng 5:", str5)
if (isSymmetrical (str5)):
print ("Ja, den givna strängen är symmetrisk")
annan:
tryck ("Nej, den angivna strängen är inte symmetrisk")

Produktion:

Sträng 1: abab
Ja, den givna strängen är symmetrisk
Sträng 2: fru
Nej, den angivna strängen är inte symmetrisk
Sträng 3: madma
Ja, den givna strängen är symmetrisk
Sträng 4: civic
Nej, den angivna strängen är inte symmetrisk
Sträng 5: khokho
Ja, den givna strängen är symmetrisk

Relaterad: Lär dig Python? Så här manipulerar du strängar

JavaScript -program för att avgöra om en given sträng är symmetrisk eller inte

Nedan finns JavaScript -programmet för att avgöra om en given sträng är symmetrisk eller inte:

// JavaScript -program för att kontrollera om strängen är symmetrisk eller inte
// Funktion för att kontrollera om strängen är symmetrisk eller inte
funktion isSymmetrical (str) {
var midIndex;
var längd = str. längd;
// Om strängens längd är jämn
if (längd % 2 == 0) {
midIndex = Math.floor (längd/2);
}
// Om strängens längd är udda
annat {
midIndex = Math.floor (längd/2) + 1;
}
var pekare1 = 0;
var pointer2 = midIndex;
medan (pekare1if (str [pekare1] == str [pekare2]) {
pekare1 += 1;
pekare2 += 1;
} annat {
return falsk;
}
}
återvända sant;
}
// Testfall: 1
var str1 = "abab";
document.write ("Sträng 1:" + str1 + "
");
if (isSymmetrical (str1)) {
document.write ("Ja, den givna strängen är symmetrisk" + "
");
} annat {
document.write ("Nej, den angivna strängen är inte symmetrisk" + "
");
}
// Testfall: 2
var str2 = "fru";
document.write ("Sträng 2:" + str2 + "
");
if (isSymmetrical (str2)) {
document.write ("Ja, den givna strängen är symmetrisk" + "
");
} annat {
document.write ("Nej, den angivna strängen är inte symmetrisk" + "
");
}
// Testfall: 3
var str3 = "madma";
document.write ("Sträng 3:" + str3 + "
");
if (isSymmetrical (str3)) {
document.write ("Ja, den givna strängen är symmetrisk" + "
");
} annat {
document.write ("Nej, den angivna strängen är inte symmetrisk" + "
");
}
// Testfall: 4
var str4 = "medborgare";
document.write ("Sträng 4:" + str4 + "
");
if (isSymmetrical (str4)) {
document.write ("Ja, den givna strängen är symmetrisk" + "
");
} annat {
document.write ("Nej, den angivna strängen är inte symmetrisk" + "
");
}
// Testfall: 5
var str5 = "khokho";
document.write ("String 5:" + str5 + "
");
if (isSymmetrical (str5)) {
document.write ("Ja, den givna strängen är symmetrisk" + "
");
} annat {
document.write ("Nej, den angivna strängen är inte symmetrisk" + "
");
}

Produktion:

Sträng 1: abab
Ja, den givna strängen är symmetrisk
Sträng 2: fru
Nej, den angivna strängen är inte symmetrisk
Sträng 3: madma
Ja, den givna strängen är symmetrisk
Sträng 4: civic
Nej, den angivna strängen är inte symmetrisk
Sträng 5: khokho
Ja, den givna strängen är symmetrisk

Relaterad: Hur man hittar den vanligaste karaktären i en sträng

Lös problem baserade på strängar

Strängar är ett av de viktigaste ämnena för programmeringsintervjuer. Du måste lösa några av de kända programmeringsproblemen baserat på strängar som att kontrollera om en sträng är ett palindrom, kontrollera om två strängar är anagram över varandra, hitta det vanligaste tecknet i en sträng, vända en sträng, etc. om du vill vara helt förberedd.

Dela med sigTweetE-post
Hur man kontrollerar om en sträng är ett palindrom

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

Läs Nästa

Relaterade ämnen
  • Programmering
  • JavaScript
  • Pytonorm
  • Handledning för kodning
  • C Programmering
Om författaren
Yuvraj Chandra (50 artiklar publicerade)

Yuvraj är en datavetenskaplig grundstudent 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!

Klicka här för att prenumerera