di Yuvraj Chandra
CondividereTweetE-mail

C++, Python, C o JavaScript: non importa quale usi, usa questo algoritmo per determinare stringhe simmetriche.

Una corda si dice simmetrica se entrambe le metà della corda sono uguali. In questo articolo imparerai un algoritmo per determinare se una determinata stringa è simmetrica o meno. Imparerai anche come implementare questo algoritmo nei linguaggi di programmazione più popolari come C++, Python, C e JavaScript.

Dichiarazione problema

Ti viene data una stringa. È necessario determinare se la stringa data è simmetrica o meno.

Esempio 1: Sia str = "abab".

Il dato è simmetrico poiché entrambe le metà della corda sono uguali.

Pertanto, l'output è "Sì, la stringa data è simmetrica".

Esempio 2: Sia str = "signora".

Se la lunghezza della stringa è dispari, il carattere centrale della stringa viene ignorato. Pertanto, 1a metà = "ma" e 2a metà = "am". Le due metà non sono le stesse.

Pertanto, l'output è "No, la stringa data non è simmetrica".

instagram viewer

Esempio 3: Sia str = "madma".

1a metà = "ma" e 2a metà = "ma". Entrambe le metà della corda sono uguali.

Pertanto, l'output è "Sì, la stringa data è simmetrica".

Algoritmo per determinare se una data stringa è simmetrica o meno

Puoi determinare se una determinata stringa è simmetrica o meno seguendo l'approccio seguente:

  1. Trova la lunghezza della stringa.
  2. Trova il midIndex della stringa.
    • Se la lunghezza della stringa è pari, midIndex = lunghezza/2.
    • Se la lunghezza della stringa è dispari, indice medio = (lunghezza/2) + 1. In questo caso, il carattere centrale della stringa viene ignorato per il confronto.
  3. Inizializza due variabili puntatore puntatore1 e puntatore2. puntatore1 memorizzerà l'indice del primo carattere (0) della stringa e puntatore2 memorizzerà l'indice del carattere centrale (midIndex) della stringa.
  4. Ora confronta i caratteri corrispondenti di entrambe le metà della stringa usando a mentre ciclo continuo. corri mentre loop fino a puntatore1.
  5. Confronta i caratteri corrispondenti agli indici puntatore1 e puntatore2.
  6. Se un carattere corrispondente viene trovato dissimile, ritorna falso. E se nessun carattere corrispondente viene trovato dissimile, ritorna vero.
  7. Inoltre, assicurati di incrementare il valore di puntatore1 e puntatore2 in ogni iterazione.

Programma C++ per determinare se una data stringa è simmetrica o meno

Di seguito è riportato il programma C++ per determinare se una determinata stringa è simmetrica o meno:

// Programma C++ per verificare se la stringa è simmetrica o meno
#includere
usando lo spazio dei nomi std;
// Funzione per verificare se la stringa è simmetrica o meno
bool isSymmetrical (string str)
{
int midIndex;
int lunghezza = str.lunghezza();
// Se la lunghezza della stringa è pari
if (lunghezza % 2 == 0)
{
midIndex = lunghezza/2;
}
// Se la lunghezza della stringa è dispari
altro
{
midIndex = lunghezza/2 + 1;
}
int puntatore1 = 0;
int pointer2 = midIndex;
mentre (puntatore1{
if (str[puntatore1] == str[puntatore2])
{
puntatore1 += 1;
puntatore2 += 1;
}
altro
{
restituire falso;
}
}
restituire vero;
}
// Codice conducente
intero principale()
{
// Caso di prova: 1
stringa str1 = "abab";
cout << "Stringa 1: " << str1 << endl;
if (isSymmetrical (str1))
{
cout << "Sì, la stringa data è simmetrica" ​​<< endl;
}
altro
{
cout << "No, la stringa data non è simmetrica" ​​<< endl;
}
// Caso di prova: 2
stringa str2 = "signora";
cout << "Stringa 2: " << str2 << endl;
if (isSymmetrical (str2))
{
cout << "Sì, la stringa data è simmetrica" ​​<< endl;
}
altro
{
cout << "No, la stringa data non è simmetrica" ​​<< endl;
}
// Caso di prova: 3
stringa str3 = "madma";
cout << "Stringa 3: " << str3 << endl;
if (isSymmetrical (str3))
{
cout << "Sì, la stringa data è simmetrica" ​​<< endl;
}
altro
{
cout << "No, la stringa data non è simmetrica" ​​<< endl;
}
// Caso di prova: 4
stringa str4 = "civico";
cout << "Stringa 4: " << str4 << endl;
if (isSymmetrical (str4))
{
cout << "Sì, la stringa data è simmetrica" ​​<< endl;
}
altro
{
cout << "No, la stringa data non è simmetrica" ​​<< endl;
}
// Caso di prova: 5
stringa str5 = "khokho";
cout << "Stringa 5: " << str5 << endl;
if (isSymmetrical (str5))
{
cout << "Sì, la stringa data è simmetrica" ​​<< endl;
}
altro
{
cout << "No, la stringa data non è simmetrica" ​​<< endl;
}
restituisce 0;
}

Produzione:

Stringa 1: abab
Sì, la stringa data è simmetrica
Stringa 2: signora
No, la stringa data non è simmetrica
Stringa 3: madma
Sì, la stringa data è simmetrica
Stringa 4: civic
No, la stringa data non è simmetrica
Stringa 5: khokho
Sì, la stringa data è simmetrica

Relazionato: Come invertire una stringa in C++, Python e JavaScript

Programma Python per determinare se una data stringa è simmetrica o meno

Di seguito è riportato il programma Python per determinare se una determinata stringa è simmetrica o meno:

# Programma Python per verificare se la stringa è simmetrica o meno
# Funzione per verificare se la stringa è simmetrica o meno
def isSymmetrical (str):
indice medio = 0
lunghezza = lente (str)
se lunghezza%2 == 0:
midIndex = lunghezza//2
altro:
midIndex = lunghezza//2 + 1
puntatore1 = 0
pointer2 = midIndex
mentre puntatore1if (str[puntatore1] == str[puntatore2]):
puntatore1 += 1
puntatore2 += 1
altro:
ritorno Falso
ritorna Vero
# Caso di prova: 1
str1 = "abate"
print("Stringa 1:", str1)
if (isSymmetrical (str1)):
print("Sì, la stringa data è simmetrica")
altro:
print("No, la stringa data non è simmetrica")
# Caso di prova: 2
str2 = "signora"
print("Stringa 2:", str2)
if (isSymmetrical (str2)):
print("Sì, la stringa data è simmetrica")
altro:
print("No, la stringa data non è simmetrica")
# Caso di prova: 3
str3 = "madma"
print("Stringa 3:", str3)
if (isSymmetrical (str3)):
print("Sì, la stringa data è simmetrica")
altro:
print("No, la stringa data non è simmetrica")
# Caso di prova: 4
str4 = "civile"
print("Stringa 4:", str4)
if (isSymmetrical (str4)):
print("Sì, la stringa data è simmetrica")
altro:
print("No, la stringa data non è simmetrica")
# Caso di prova: 5
str5 = "khokho"
print("Stringa 5:", str5)
if (isSymmetrical (str5)):
print("Sì, la stringa data è simmetrica")
altro:
print("No, la stringa data non è simmetrica")

Produzione:

Stringa 1: abab
Sì, la stringa data è simmetrica
Stringa 2: signora
No, la stringa data non è simmetrica
Stringa 3: madma
Sì, la stringa data è simmetrica
Stringa 4: civic
No, la stringa data non è simmetrica
Stringa 5: khokho
Sì, la stringa data è simmetrica

Relazionato: Imparare Python? Ecco come manipolare le stringhe

Programma JavaScript per determinare se una data stringa è simmetrica o meno

Di seguito è riportato il programma JavaScript per determinare se una determinata stringa è simmetrica o meno:

// Programma JavaScript per verificare se la stringa è simmetrica o meno
// Funzione per verificare se la stringa è simmetrica o meno
la funzione è simmetrica (str) {
var midIndex;
var lunghezza = str.lunghezza;
// Se la lunghezza della stringa è pari
if (lunghezza % 2 == 0) {
midIndex = Math.floor (lunghezza/2);
}
// Se la lunghezza della stringa è dispari
altro {
midIndex = Math.floor (lunghezza/2) + 1;
}
puntatore var1 = 0;
var pointer2 = midIndex;
mentre (puntatore1if (str[puntatore1] == str[puntatore2]) {
puntatore1 += 1;
puntatore2 += 1;
} altro {
restituire falso;
}
}
restituire vero;
}
// Caso di prova: 1
var str1 = "abab";
document.write("Stringa 1: " + str1 + "
");
if (isSymmetrical (str1)) {
document.write("Sì, la stringa data è simmetrica" ​​+ "
");
} altro {
document.write("No, la stringa data non è simmetrica" ​​+ "
");
}
// Caso di prova: 2
var str2 = "signora";
document.write("Stringa 2: " + str2 + "
");
if (isSymmetrical (str2)) {
document.write("Sì, la stringa data è simmetrica" ​​+ "
");
} altro {
document.write("No, la stringa data non è simmetrica" ​​+ "
");
}
// Caso di prova: 3
var str3 = "madma";
document.write("Stringa 3: " + str3 + "
");
if (isSymmetrical (str3)) {
document.write("Sì, la stringa data è simmetrica" ​​+ "
");
} altro {
document.write("No, la stringa data non è simmetrica" ​​+ "
");
}
// Caso di prova: 4
var str4 = "civico";
document.write("Stringa 4: " + str4 + "
");
if (isSymmetrical (str4)) {
document.write("Sì, la stringa data è simmetrica" ​​+ "
");
} altro {
document.write("No, la stringa data non è simmetrica" ​​+ "
");
}
// Caso di prova: 5
var str5 = "khokho";
document.write("Stringa 5: " + str5 + "
");
if (isSymmetrical (str5)) {
document.write("Sì, la stringa data è simmetrica" ​​+ "
");
} altro {
document.write("No, la stringa data non è simmetrica" ​​+ "
");
}

Produzione:

Stringa 1: abab
Sì, la stringa data è simmetrica
Stringa 2: signora
No, la stringa data non è simmetrica
Stringa 3: madma
Sì, la stringa data è simmetrica
Stringa 4: civic
No, la stringa data non è simmetrica
Stringa 5: khokho
Sì, la stringa data è simmetrica

Relazionato: Come trovare il carattere che ricorre più frequentemente in una stringa

Risolvi problemi basati su stringhe

Le stringhe sono uno degli argomenti più importanti per la programmazione delle interviste. Devi risolvere alcuni dei famosi problemi di programmazione basati su stringhe come controlla se una stringa è palindroma, controlla se due stringhe sono anagrammi l'una dell'altra, trova il carattere più frequente in una stringa, inverti una stringa, eccetera. se stai cercando di essere completamente preparato.

CondividereTweetE-mail
Come verificare se una stringa è un palindromo

La tua stringa è palindroma? Sia che tu usi Python, C++ o JavaScript, usa uno di questi algoritmi per scoprirlo.

Leggi Avanti

Argomenti correlati
  • Programmazione
  • JavaScript
  • Pitone
  • Tutorial sulla programmazione
  • C Programmazione
Circa l'autore
Yuvraj Chandra (50 articoli pubblicati)

Yuvraj è uno studente universitario di Informatica presso l'Università di Delhi, in India. È appassionato di sviluppo Web Full Stack. Quando non scrive, esplora la profondità di diverse tecnologie.

Altro da Yuvraj Chandra

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti