So überprüfen Sie, ob eine Zeichenfolge mit der Programmierung symmetrisch ist
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.
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:
- Finden Sie die Länge der Zeichenfolge.
- Suchen Sie den midIndex des Strings.
- Wenn die Länge des Strings gerade ist, ist midIndex = length/2 .
- Wenn die Länge des Strings ungerade ist, ist midIndex = (Länge/2) + 1 . In diesem Fall wird das mittlere Zeichen der Zeichenfolge für den Vergleich ignoriert.
- Initialisieren Sie zwei Zeigervariablen pointer1 und pointer2 . pointer1 speichert den Index des ersten Zeichens (0) des Strings und pointer2 speichert den Index des mittleren Zeichens (midIndex) des Strings.
- Vergleichen Sie nun die entsprechenden Zeichen der beiden Hälften des Strings mit einer while- Schleife. Führen Sie eine while- Schleife aus, bis pointer1<midIndex and pointer2<lengthOfString .
- Vergleichen Sie die entsprechenden Zeichen an den Indizes pointer1 und pointer2 .
- Wenn ein entsprechendes Zeichen unähnlich gefunden wird, geben Sie false zurück . Und wenn keine entsprechenden Zeichen unähnlich gefunden werden, geben Sie true zurück .
- Stellen Sie außerdem sicher, dass der Wert von pointer1 und pointer2 in jeder Iteration erhöht wird.
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++ program to check whether the string is symmetrical or not
#include <iostream>
using namespace std;
// Function to check whether the string is symmetrical or not
bool isSymmetrical(string str)
{
int midIndex;
int length = str.length();
// If the length of string is even
if (length % 2 == 0)
{
midIndex = length/2;
}
// If the length of string is odd
else
{
midIndex = length/2 + 1;
}
int pointer1 = 0;
int pointer2 = midIndex;
while(pointer1<midIndex && pointer2<length)
{
if(str[pointer1] == str[pointer2])
{
pointer1 += 1;
pointer2 += 1;
}
else
{
return false;
}
}
return true;
}
// Driver Code
int main()
{
// Test case: 1
string str1 = "abab";
cout << "String 1: " << str1 << endl;
if (isSymmetrical(str1))
{
cout << "Yes, the given string is symmetrical" << endl;
}
else
{
cout << "No, the given string is not symmetrical" << endl;
}
// Test case: 2
string str2 = "madam";
cout << "String 2: " << str2 << endl;
if (isSymmetrical(str2))
{
cout << "Yes, the given string is symmetrical" << endl;
}
else
{
cout << "No, the given string is not symmetrical" << endl;
}
// Test case: 3
string str3 = "madma";
cout << "String 3: " << str3 << endl;
if (isSymmetrical(str3))
{
cout << "Yes, the given string is symmetrical" << endl;
}
else
{
cout << "No, the given string is not symmetrical" << endl;
}
// Test case: 4
string str4 = "civic";
cout << "String 4: " << str4 << endl;
if (isSymmetrical(str4))
{
cout << "Yes, the given string is symmetrical" << endl;
}
else
{
cout << "No, the given string is not symmetrical" << endl;
}
// Test case: 5
string str5 = "khokho";
cout << "String 5: " << str5 << endl;
if (isSymmetrical(str5))
{
cout << "Yes, the given string is symmetrical" << endl;
}
else
{
cout << "No, the given string is not symmetrical" << endl;
}
return 0;
}
Ausgabe:
String 1: abab
Yes, the given string is symmetrical
String 2: madam
No, the given string is not symmetrical
String 3: madma
Yes, the given string is symmetrical
String 4: civic
No, the given string is not symmetrical
String 5: khokho
Yes, the given string is symmetrical
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 program to check whether the string is symmetrical or not
# Function to check whether the string is symmetrical or not
def isSymmetrical(str):
midIndex = 0
length = len(str)
if length%2 == 0:
midIndex = length//2
else:
midIndex = length//2 + 1
pointer1 = 0
pointer2 = midIndex
while pointer1<midIndex and pointer2<length:
if (str[pointer1] == str[pointer2]):
pointer1 += 1
pointer2 += 1
else:
return False
return True
# Test case: 1
str1 = "abab"
print("String 1:", str1)
if (isSymmetrical(str1)):
print("Yes, the given string is symmetrical")
else:
print("No, the given string is not symmetrical")
# Test case: 2
str2 = "madam"
print("String 2:", str2)
if (isSymmetrical(str2)):
print("Yes, the given string is symmetrical")
else:
print("No, the given string is not symmetrical")
# Test case: 3
str3 = "madma"
print("String 3:", str3)
if (isSymmetrical(str3)):
print("Yes, the given string is symmetrical")
else:
print("No, the given string is not symmetrical")
# Test case: 4
str4 = "civic"
print("String 4:", str4)
if (isSymmetrical(str4)):
print("Yes, the given string is symmetrical")
else:
print("No, the given string is not symmetrical")
# Test case: 5
str5 = "khokho"
print("String 5:", str5)
if (isSymmetrical(str5)):
print("Yes, the given string is symmetrical")
else:
print("No, the given string is not symmetrical")
Ausgabe:
String 1: abab
Yes, the given string is symmetrical
String 2: madam
No, the given string is not symmetrical
String 3: madma
Yes, the given string is symmetrical
String 4: civic
No, the given string is not symmetrical
String 5: khokho
Yes, the given string is symmetrical
JavaScript-Programm, um zu bestimmen, ob ein gegebener String symmetrisch ist oder nicht
Unten ist das JavaScript-Programm, um zu bestimmen, ob eine gegebene Zeichenfolge symmetrisch ist oder nicht:
// JavaScript program to check whether the string is symmetrical or not
// Function to check whether the string is symmetrical or not
function isSymmetrical(str) {
var midIndex;
var length = str.length;
// If the length of string is even
if (length % 2 == 0) {
midIndex = Math.floor(length/2);
}
// If the length of string is odd
else {
midIndex = Math.floor(length/2) + 1;
}
var pointer1 = 0;
var pointer2 = midIndex;
while(pointer1<midIndex && pointer2<length) {
if(str[pointer1] == str[pointer2]) {
pointer1 += 1;
pointer2 += 1;
} else {
return false;
}
}
return true;
}
// Test case: 1
var str1 = "abab";
document.write("String 1: " + str1 + "<br>");
if (isSymmetrical(str1)) {
document.write("Yes, the given string is symmetrical" + "<br>");
} else {
document.write("No, the given string is not symmetrical" + "<br>");
}
// Test case: 2
var str2 = "madam";
document.write("String 2: " + str2 + "<br>");
if (isSymmetrical(str2)) {
document.write("Yes, the given string is symmetrical" + "<br>");
} else {
document.write("No, the given string is not symmetrical" + "<br>");
}
// Test case: 3
var str3 = "madma";
document.write("String 3: " + str3 + "<br>");
if (isSymmetrical(str3)) {
document.write("Yes, the given string is symmetrical" + "<br>");
} else {
document.write("No, the given string is not symmetrical" + "<br>");
}
// Test case: 4
var str4 = "civic";
document.write("String 4: " + str4 + "<br>");
if (isSymmetrical(str4)) {
document.write("Yes, the given string is symmetrical" + "<br>");
} else {
document.write("No, the given string is not symmetrical" + "<br>");
}
// Test case: 5
var str5 = "khokho";
document.write("String 5: " + str5 + "<br>");
if (isSymmetrical(str5)) {
document.write("Yes, the given string is symmetrical" + "<br>");
} else {
document.write("No, the given string is not symmetrical" + "<br>");
}
Ausgabe:
String 1: abab
Yes, the given string is symmetrical
String 2: madam
No, the given string is not symmetrical
String 3: madma
Yes, the given string is symmetrical
String 4: civic
No, the given string is not symmetrical
String 5: khokho
Yes, the given string is symmetrical
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 Zeichenfolgen basieren, wie zum Beispiel prüfen, ob eine Zeichenfolge ein Palindrom ist, prüfen, ob zwei Zeichenfolgen Anagramme voneinander sind, das am häufigsten vorkommende Zeichen in einer Zeichenfolge finden, eine Zeichenfolge umkehren usw. Sie suchen, um vollständig vorbereitet zu sein.