Von Yuvraj Chandra
AktieTweetEmail

C++, Python, C oder JavaScript: Egal welches Sie verwenden, verwenden Sie diesen Algorithmus, um symmetrische Strings zu bestimmen.

Eine Saite heißt symmetrisch, wenn beide Hälften der Saite gleich sind. In diesem Artikel lernen Sie einen Algorithmus kennen, um festzustellen, ob eine bestimmte Zeichenfolge symmetrisch ist oder nicht. Außerdem erfahren Sie, wie Sie diesen Algorithmus in den gängigsten Programmiersprachen wie C++, Python, C und JavaScript implementieren.

Problemstellung

Sie erhalten eine Zeichenfolge. Sie müssen feststellen, ob die angegebene Zeichenfolge symmetrisch ist oder nicht.

Beispiel 1: Sei str = "abab".

Die Angabe ist symmetrisch, da beide Hälften der Zeichenfolge gleich sind.

Somit lautet die Ausgabe "Ja, die angegebene Zeichenfolge ist symmetrisch".

Beispiel 2: Sei str = "Frau".

Wenn die Länge des Strings ungerade ist, wird das mittlere Zeichen des Strings ignoriert. Daher 1. Hälfte = "ma" und 2. Hälfte = "am". Die beiden Hälften sind nicht gleich.

instagram viewer

Somit lautet die Ausgabe "Nein, der angegebene String ist nicht symmetrisch".

Beispiel 3: Sei str = "Madma".

1. Hälfte = "ma" und 2. Hälfte = "ma". Beide Hälften der Saite sind gleich.

Somit lautet die Ausgabe "Ja, die angegebene Zeichenfolge ist symmetrisch".

Algorithmus zur Bestimmung, ob eine gegebene Zeichenfolge symmetrisch ist oder nicht

Sie können feststellen, ob eine bestimmte Zeichenfolge symmetrisch ist oder nicht, indem Sie den folgenden Ansatz befolgen:

  1. Finden Sie die Länge der Zeichenfolge.
  2. Suchen Sie den midIndex des Strings.
    • Wenn die Länge der Zeichenfolge gerade ist, midIndex = Länge/2.
    • Wenn die Länge der Zeichenfolge ungerade ist, midIndex = (Länge/2) + 1. In diesem Fall wird das mittlere Zeichen der Zeichenfolge für den Vergleich ignoriert.
  3. Initialisieren Sie zwei Zeigervariablen Zeiger1 und Zeiger2. Zeiger1 speichert den Index des ersten Zeichens (0) der Zeichenfolge und Zeiger2 speichert den Index des mittleren Zeichens (midIndex) des Strings.
  4. Vergleichen Sie nun die entsprechenden Zeichen der beiden Hälften der Zeichenfolge mit a während Schleife. Lauf a während wiederholen bis Zeiger1.
  5. Vergleichen Sie die entsprechenden Zeichen bei Indizes Zeiger1 und Zeiger2.
  6. Wenn ein entsprechendes Zeichen unähnlich gefunden wird, geben Sie zurück falsch. Und wenn keine entsprechenden Zeichen unähnlich gefunden werden, kehren Sie zurück Stimmt.
  7. Stellen Sie außerdem sicher, dass Sie den Wert von erhöhen Zeiger1 und Zeiger2 in jeder Iteration.

C++-Programm, um zu bestimmen, ob ein gegebener String symmetrisch ist oder nicht

Unten ist das C++-Programm, um zu bestimmen, ob eine gegebene Zeichenfolge symmetrisch ist oder nicht:

// C++ Programm um zu prüfen ob der String symmetrisch ist oder nicht
#enthalten
Verwenden des Namensraums std;
// Funktion um zu prüfen ob der String symmetrisch ist oder nicht
bool isSymmetrical (string str)
{
int midIndex;
int Länge = Str.Länge();
// Wenn die Länge des Strings gerade ist
if (Länge % 2 == 0)
{
midIndex = Länge/2;
}
// Wenn die Länge des Strings ungerade ist
anders
{
midIndex = Länge/2 + 1;
}
int-Zeiger1 = 0;
int-Zeiger2 = midIndex;
while (Zeiger1{
if (str[pointer1] == str[pointer2])
{
Zeiger1 += 1;
Zeiger2 += 1;
}
anders
{
falsch zurückgeben;
}
}
true zurückgeben;
}
// Fahrercode
int main()
{
// Testfall: 1
string str1 = "abab";
cout << "String 1: " << str1 << endl;
if (issymmetrisch (str1))
{
cout << "Ja, der angegebene String ist symmetrisch" << endl;
}
anders
{
cout << "Nein, der angegebene String ist nicht symmetrisch" << endl;
}
// Testfall: 2
string str2 = "Frau";
cout << "String 2: " << str2 << endl;
if (issymmetrisch (str2))
{
cout << "Ja, der angegebene String ist symmetrisch" << endl;
}
anders
{
cout << "Nein, der angegebene String ist nicht symmetrisch" << endl;
}
// Testfall: 3
string str3 = "Madma";
cout << "String 3: " << str3 << endl;
if (issymmetrisch (str3))
{
cout << "Ja, der angegebene String ist symmetrisch" << endl;
}
anders
{
cout << "Nein, der angegebene String ist nicht symmetrisch" << endl;
}
// Testfall: 4
string str4 = "bürgerlich";
cout << "String 4: " << str4 << endl;
if (issymmetrisch (str4))
{
cout << "Ja, der angegebene String ist symmetrisch" << endl;
}
anders
{
cout << "Nein, der angegebene String ist nicht symmetrisch" << endl;
}
// Testfall: 5
string str5 = "khokho";
cout << "String 5: " << str5 << endl;
if (issymmetrisch (str5))
{
cout << "Ja, der angegebene String ist symmetrisch" << endl;
}
anders
{
cout << "Nein, der angegebene String ist nicht symmetrisch" << endl;
}
0 zurückgeben;
}

Ausgabe:

Zeichenfolge 1: abab
Ja, die angegebene Zeichenfolge ist symmetrisch
Saite 2: Madam
Nein, die angegebene Zeichenfolge ist nicht symmetrisch
String 3: Wahnsinnige
Ja, die angegebene Zeichenfolge ist symmetrisch
String 4: bürgerlich
Nein, die angegebene Zeichenfolge ist nicht symmetrisch
Saite 5: khokho
Ja, die angegebene Zeichenfolge ist symmetrisch

Verwandt: So kehren Sie einen String in C++, Python und JavaScript um

Python-Programm, um zu bestimmen, ob ein gegebener String symmetrisch ist oder nicht

Unten ist das Python-Programm, um zu bestimmen, ob eine gegebene Zeichenfolge symmetrisch ist oder nicht:

# Python-Programm, um zu überprüfen, ob die Zeichenfolge symmetrisch ist oder nicht
# Funktion um zu prüfen, ob der String symmetrisch ist oder nicht
def isSymmetrisch (str):
midIndex = 0
Länge = Länge (str)
wenn Länge%2 == 0:
midIndex = Länge//2
anders:
midIndex = Länge//2 + 1
Zeiger1 = 0
pointer2 = midIndex
während Zeiger1if (str[pointer1] == str[pointer2]):
Zeiger1 += 1
Zeiger2 += 1
anders:
falsch zurückgeben
true zurückgeben
# Testfall: 1
str1 = "abab"
print("String 1:", str1)
if (issymmetrisch (str1)):
print("Ja, der angegebene String ist symmetrisch")
anders:
print("Nein, der angegebene String ist nicht symmetrisch")
# Testfall: 2
str2 = "Frau"
print("String 2:", str2)
if (issymmetrisch (str2)):
print("Ja, der angegebene String ist symmetrisch")
anders:
print("Nein, der angegebene String ist nicht symmetrisch")
# Testfall: 3
str3 = "Madma"
print("String 3:", str3)
if (issymmetrisch (str3)):
print("Ja, der angegebene String ist symmetrisch")
anders:
print("Nein, der angegebene String ist nicht symmetrisch")
# Testfall: 4
str4 = "bürgerlich"
print("String 4:", str4)
if (issymmetrisch (str4)):
print("Ja, der angegebene String ist symmetrisch")
anders:
print("Nein, der angegebene String ist nicht symmetrisch")
# Testfall: 5
str5 = "chocho"
print("String 5:", str5)
if (issymmetrisch (str5)):
print("Ja, der angegebene String ist symmetrisch")
anders:
print("Nein, der angegebene String ist nicht symmetrisch")

Ausgabe:

Zeichenfolge 1: abab
Ja, die angegebene Zeichenfolge ist symmetrisch
Saite 2: Madam
Nein, die angegebene Zeichenfolge ist nicht symmetrisch
String 3: Wahnsinnige
Ja, die angegebene Zeichenfolge ist symmetrisch
String 4: bürgerlich
Nein, die angegebene Zeichenfolge ist nicht symmetrisch
Saite 5: khokho
Ja, die angegebene Zeichenfolge ist symmetrisch

Verwandt: Python lernen? So manipulieren Sie Strings

JavaScript-Programm, um zu bestimmen, ob ein gegebener String symmetrisch ist oder nicht

Unten ist das JavaScript-Programm, um zu bestimmen, ob eine bestimmte Zeichenfolge symmetrisch ist oder nicht:

// JavaScript-Programm, um zu überprüfen, ob der String symmetrisch ist oder nicht
// Funktion um zu prüfen ob der String symmetrisch ist oder nicht
Funktion isSymmetrisch (str) {
var midIndex;
var Länge = Str.Länge;
// Wenn die Länge des Strings gerade ist
if (Länge % 2 == 0) {
midIndex = Math.floor (Länge/2);
}
// Wenn die Länge des Strings ungerade ist
anders {
midIndex = Math.floor (Länge/2) + 1;
}
var-Zeiger1 = 0;
var Zeiger2 = midIndex;
while (Zeiger1if (str[pointer1] == str[pointer2]) {
Zeiger1 += 1;
Zeiger2 += 1;
} anders {
falsch zurückgeben;
}
}
true zurückgeben;
}
// Testfall: 1
var str1 = "abab";
document.write("String 1: " + str1 + "
");
if (istsymmetrisch (str1)) {
document.write("Ja, der angegebene String ist symmetrisch" + "
");
} anders {
document.write("Nein, der angegebene String ist nicht symmetrisch" + "
");
}
// Testfall: 2
var str2 = "Frau";
document.write("String 2: " + str2 + "
");
if (istsymmetrisch (str2)) {
document.write("Ja, der angegebene String ist symmetrisch" + "
");
} anders {
document.write("Nein, der angegebene String ist nicht symmetrisch" + "
");
}
// Testfall: 3
var str3 = "Madma";
document.write("String 3: " + str3 + "
");
if (istsymmetrisch (str3)) {
document.write("Ja, der angegebene String ist symmetrisch" + "
");
} anders {
document.write("Nein, der angegebene String ist nicht symmetrisch" + "
");
}
// Testfall: 4
var str4 = "bürgerlich";
document.write("String 4: " + str4 + "
");
if (istsymmetrisch (str4)) {
document.write("Ja, der angegebene String ist symmetrisch" + "
");
} anders {
document.write("Nein, der angegebene String ist nicht symmetrisch" + "
");
}
// Testfall: 5
var str5 = "khokho";
document.write("String 5: " + str5 + "
");
if (istsymmetrisch (str5)) {
document.write("Ja, der angegebene String ist symmetrisch" + "
");
} anders {
document.write("Nein, der angegebene String ist nicht symmetrisch" + "
");
}

Ausgabe:

Zeichenfolge 1: abab
Ja, die angegebene Zeichenfolge ist symmetrisch
Saite 2: Madam
Nein, die angegebene Zeichenfolge ist nicht symmetrisch
String 3: Wahnsinnige
Ja, die angegebene Zeichenfolge ist symmetrisch
String 4: bürgerlich
Nein, die angegebene Zeichenfolge ist nicht symmetrisch
Saite 5: khokho
Ja, die angegebene Zeichenfolge ist symmetrisch

Verwandt: So finden Sie das am häufigsten vorkommende Zeichen in einer Zeichenfolge

Lösen von Problemen basierend auf Strings

Strings sind eines der wichtigsten Themen beim Programmieren von Interviews. Sie müssen einige der berühmten Programmierprobleme lösen, die auf Strings basieren, wie zum Beispiel prüfen, ob ein String ein Palindrom ist, check wenn zwei Zeichenfolgen Anagramme voneinander sind, finden Sie das am häufigsten vorkommende Zeichen in einer Zeichenfolge, kehren Sie eine Zeichenfolge um, etc. wenn Sie vollständig vorbereitet sein möchten.

AktieTweetEmail
So prüfen Sie, ob ein String ein Palindrom ist

Ist Ihre Saite ein Palindrom? Unabhängig davon, ob Sie Python, C++ oder JavaScript verwenden, verwenden Sie einen dieser Algorithmen, um dies herauszufinden.

Weiter lesen

Verwandte Themen
  • Programmierung
  • JavaScript
  • Python
  • Codierungs-Tutorials
  • C-Programmierung
Über den Autor
Yuvraj Chandra (50 Artikel veröffentlicht)

Yuvraj studiert Informatik an der University of Delhi, Indien. Er hat eine Leidenschaft für Full Stack Web Development. Wenn er nicht gerade schreibt, erforscht er die Tiefe verschiedener Technologien.

Mehr von Yuvraj Chandra

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um sich zu abonnieren