C++, Python, C ou JavaScript: peu importe ce que vous utilisez, utilisez cet algorithme pour déterminer des chaînes symétriques.
Une chaîne est dite symétrique si les deux moitiés de la chaîne sont identiques. Dans cet article, vous apprendrez un algorithme pour déterminer si une chaîne donnée est symétrique ou non. Vous apprendrez également à implémenter cet algorithme dans les langages de programmation les plus populaires tels que C++, Python, C et JavaScript.
Énoncé du problème
On vous donne une chaîne. Vous devez déterminer si la chaîne donnée est symétrique ou non.
Exemple 1: Soit str = "abab".
Le donné est symétrique car les deux moitiés de la corde sont les mêmes.
Ainsi, la sortie est "Oui, la chaîne donnée est symétrique".
Exemple 2: Soit str = "Madame".
Si la longueur de la chaîne est impaire, le caractère du milieu de la chaîne est ignoré. Par conséquent, 1ère moitié = "ma" et 2ème moitié = "am". Les deux moitiés ne sont pas les mêmes.
Ainsi, la sortie est "Non, la chaîne donnée n'est pas symétrique".
Exemple 3: Soit str = "madma".
1ère moitié = "ma" et 2ème moitié = "ma". Les deux moitiés de la chaîne sont les mêmes.
Ainsi, la sortie est "Oui, la chaîne donnée est symétrique".
Algorithme pour déterminer si une chaîne donnée est symétrique ou non
Vous pouvez déterminer si une chaîne donnée est symétrique ou non en suivant l'approche ci-dessous:
- Trouvez la longueur de la chaîne.
- Trouvez le midIndex de la chaîne.
- Si la longueur de la chaîne est paire, midIndex = longueur/2.
- Si la longueur de la chaîne est impaire, midIndex = (longueur/2) + 1. Dans ce cas, le caractère central de la chaîne est ignoré pour la comparaison.
- Initialiser deux variables de pointeur pointeur1 et pointeur2. pointeur1 stockera l'index du premier caractère (0) de la chaîne et pointeur2 stockera l'index du caractère du milieu (midIndex) de la chaîne.
- Comparez maintenant les caractères correspondants des deux moitiés de la chaîne à l'aide d'un tandis que boucle. Exécuter un tandis que boucle jusqu'à pointeur1.
- Comparez les caractères correspondants aux index pointeur1 et pointeur2.
- Si un caractère correspondant est trouvé différent, retournez faux. Et si aucun caractère correspondant n'est différent, retournez vrai.
- Veillez également à incrémenter la valeur de pointeur1 et pointeur2 à chaque itération.
Programme C++ pour déterminer si une chaîne donnée est symétrique ou non
Vous trouverez ci-dessous le programme C++ pour déterminer si une chaîne donnée est symétrique ou non:
// Programme C++ pour vérifier si la chaîne est symétrique ou non
#comprendre
en utilisant l'espace de noms std ;
// Fonction pour vérifier si la chaîne est symétrique ou non
bool isSymetrical (chaîne str)
{
int midIndex;
int longueur = str.longueur();
// Si la longueur de la chaîne est paire
si (longueur % 2 == 0)
{
midIndex = longueur/2;
}
// Si la longueur de la chaîne est impaire
autre
{
midIndex = longueur/2 + 1 ;
}
int pointeur1 = 0;
int pointeur2 = midIndex;
tandis que (pointeur1{
if (str[pointeur1] == str[pointeur2])
{
pointeur1 += 1;
pointeur2 += 1;
}
autre
{
renvoie faux ;
}
}
renvoie vrai ;
}
// Code du pilote
int main()
{
// Cas de test: 1
chaîne str1 = "abab" ;
cout << "Chaîne 1:" << str1 << endl;
if (isSymetrical (str1))
{
cout << "Oui, la chaîne donnée est symétrique" << endl;
}
autre
{
cout << "Non, la chaîne donnée n'est pas symétrique" << endl;
}
// Cas de test: 2
chaîne str2 = "Madame";
cout << "Chaîne 2:" << str2 << endl;
if (isSymetrical (str2))
{
cout << "Oui, la chaîne donnée est symétrique" << endl;
}
autre
{
cout << "Non, la chaîne donnée n'est pas symétrique" << endl;
}
// Cas de test: 3
chaîne str3 = "madma";
cout << "Chaîne 3:" << str3 << endl;
if (isSymetrical (str3))
{
cout << "Oui, la chaîne donnée est symétrique" << endl;
}
autre
{
cout << "Non, la chaîne donnée n'est pas symétrique" << endl;
}
// Cas de test: 4
chaîne str4 = "civique";
cout << "Chaîne 4:" << str4 << endl;
if (isSymetrical (str4))
{
cout << "Oui, la chaîne donnée est symétrique" << endl;
}
autre
{
cout << "Non, la chaîne donnée n'est pas symétrique" << endl;
}
// Cas de test: 5
chaîne str5 = "khokho";
cout << "Chaîne 5:" << str5 << endl;
if (isSymetrical (str5))
{
cout << "Oui, la chaîne donnée est symétrique" << endl;
}
autre
{
cout << "Non, la chaîne donnée n'est pas symétrique" << endl;
}
renvoie 0 ;
}
Production:
Chaîne 1: abab
Oui, la chaîne donnée est symétrique
Corde 2: madame
Non, la chaîne donnée n'est pas symétrique
Chaîne 3: madma
Oui, la chaîne donnée est symétrique
Chaîne 4: civique
Non, la chaîne donnée n'est pas symétrique
Corde 5: khokho
Oui, la chaîne donnée est symétrique
En rapport: Comment inverser une chaîne en C++, Python et JavaScript
Programme Python pour déterminer si une chaîne donnée est symétrique ou non
Vous trouverez ci-dessous le programme Python pour déterminer si une chaîne donnée est symétrique ou non:
# Programme Python pour vérifier si la chaîne est symétrique ou non
# Fonction pour vérifier si la chaîne est symétrique ou non
def isSymetrical (str):
indice moyen = 0
longueur = longueur (chaîne)
si longueur%2 == 0 :
midIndex = longueur//2
autre:
midIndex = longueur//2 + 1
pointeur1 = 0
pointeur2 = midIndex
tandis que pointeur1if (str[pointeur1] == str[pointeur2]):
pointeur1 += 1
pointeur2 += 1
autre:
retourner Faux
retourner vrai
# Cas de test: 1
str1 = "abab"
print("Chaîne 1:", str1)
if (isSymetrical (str1)):
print("Oui, la chaîne donnée est symétrique")
autre:
print("Non, la chaîne donnée n'est pas symétrique")
# Cas de test: 2
str2 = "Madame"
print("String 2:", str2)
if (isSymetrical (str2)):
print("Oui, la chaîne donnée est symétrique")
autre:
print("Non, la chaîne donnée n'est pas symétrique")
# Cas de test: 3
str3 = "maman"
print("String 3:", str3)
if (isSymetrical (str3)):
print("Oui, la chaîne donnée est symétrique")
autre:
print("Non, la chaîne donnée n'est pas symétrique")
# Cas de test: 4
str4 = "civique"
print("String 4:", str4)
if (isSymetrical (str4)):
print("Oui, la chaîne donnée est symétrique")
autre:
print("Non, la chaîne donnée n'est pas symétrique")
# Cas de test: 5
str5 = "khokho"
print("String 5:", str5)
if (isSymetrical (str5)):
print("Oui, la chaîne donnée est symétrique")
autre:
print("Non, la chaîne donnée n'est pas symétrique")
Production:
Chaîne 1: abab
Oui, la chaîne donnée est symétrique
Corde 2: madame
Non, la chaîne donnée n'est pas symétrique
Chaîne 3: madma
Oui, la chaîne donnée est symétrique
Chaîne 4: civique
Non, la chaîne donnée n'est pas symétrique
Corde 5: khokho
Oui, la chaîne donnée est symétrique
En rapport: Apprendre Python? Voici comment manipuler des chaînes
Programme JavaScript pour déterminer si une chaîne donnée est symétrique ou non
Vous trouverez ci-dessous le programme JavaScript pour déterminer si une chaîne donnée est symétrique ou non:
// Programme JavaScript pour vérifier si la chaîne est symétrique ou non
// Fonction pour vérifier si la chaîne est symétrique ou non
fonction isSymetrical (str) {
var midIndex;
var longueur = str.longueur;
// Si la longueur de la chaîne est paire
if (longueur % 2 == 0) {
midIndex = Math.floor (longueur/2);
}
// Si la longueur de la chaîne est impaire
autre {
midIndex = Math.floor (longueur/2) + 1 ;
}
var pointeur1 = 0 ;
var pointer2 = midIndex;
tandis que (pointeur1if (str[pointeur1] == str[pointeur2]) {
pointeur1 += 1;
pointeur2 += 1;
} autre {
renvoie faux ;
}
}
renvoie vrai ;
}
// Cas de test: 1
var str1 = "abab";
document.write("Chaîne 1: " + str1 + "
");
if (isSymetrical (str1)) {
document.write("Oui, la chaîne donnée est symétrique" + "
");
} autre {
document.write("Non, la chaîne donnée n'est pas symétrique" + "
");
}
// Cas de test: 2
var str2 = "Madame";
document.write("Chaîne 2: " + str2 + "
");
if (isSymetrical (str2)) {
document.write("Oui, la chaîne donnée est symétrique" + "
");
} autre {
document.write("Non, la chaîne donnée n'est pas symétrique" + "
");
}
// Cas de test: 3
var str3 = "madame";
document.write("Chaîne 3: " + str3 + "
");
if (isSymetrical (str3)) {
document.write("Oui, la chaîne donnée est symétrique" + "
");
} autre {
document.write("Non, la chaîne donnée n'est pas symétrique" + "
");
}
// Cas de test: 4
var str4 = "civique" ;
document.write("Chaîne 4: " + str4 + "
");
if (isSymetrical (str4)) {
document.write("Oui, la chaîne donnée est symétrique" + "
");
} autre {
document.write("Non, la chaîne donnée n'est pas symétrique" + "
");
}
// Cas de test: 5
var str5 = "khokho";
document.write("Chaîne 5: " + str5 + "
");
if (isSymetrical (str5)) {
document.write("Oui, la chaîne donnée est symétrique" + "
");
} autre {
document.write("Non, la chaîne donnée n'est pas symétrique" + "
");
}
Production:
Chaîne 1: abab
Oui, la chaîne donnée est symétrique
Corde 2: madame
Non, la chaîne donnée n'est pas symétrique
Chaîne 3: madma
Oui, la chaîne donnée est symétrique
Chaîne 4: civique
Non, la chaîne donnée n'est pas symétrique
Corde 5: khokho
Oui, la chaîne donnée est symétrique
En rapport: Comment trouver le caractère le plus fréquent dans une chaîne
Résoudre des problèmes basés sur des chaînes
Les cordes sont l'un des sujets les plus importants pour la programmation d'interviews. Vous devez résoudre certains des problèmes de programmation célèbres basés sur des chaînes comme vérifier si une chaîne est un palindrome, vérifier si deux chaînes sont des anagrammes l'une de l'autre, trouver le caractère le plus fréquent dans une chaîne, inverser une chaîne, etc. si vous cherchez à être pleinement préparé.
Votre corde est-elle un palindrome? Que vous utilisiez Python, C++ ou JavaScript, utilisez l'un de ces algorithmes pour le découvrir.
Lire la suite
- Programmation
- JavaScript
- Python
- Tutoriels de codage
- C Programmation
Yuvraj est un étudiant de premier cycle en informatique à l'Université de Delhi, en Inde. Il est passionné par le développement Web Full Stack. Quand il n'écrit pas, il explore la profondeur de différentes technologies.
Abonnez-vous à notre newsletter
Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !
Cliquez ici pour vous abonner