Kirjailija: Yuvraj Chandra
JaaTweetSähköposti

C ++, Python, C tai JavaScript: riippumatta siitä, mitä käytät, käytä tätä algoritmia symmetristen merkkijonojen määrittämiseen.

Merkkijonon sanotaan olevan symmetrinen, jos merkkijonon molemmat puoliskot ovat samat. Tässä artikkelissa opit algoritmin sen määrittämiseksi, onko tietty merkkijono symmetrinen vai ei. Opit myös käyttämään tätä algoritmia suosituimmilla ohjelmointikielillä, kuten C ++, Python, C ja JavaScript.

Ongelmailmoitus

Sinulle annetaan merkkijono. Sinun on määritettävä, onko annettu merkkijono symmetrinen vai ei.

Esimerkki 1: Olkoon str = "abab".

Annettu on symmetrinen, koska merkkijonon molemmat puoliskot ovat samat.

Tulos on siis "Kyllä, annettu merkkijono on symmetrinen".

Esimerkki 2: Olkoon str = "rouva".

Jos merkkijonon pituus on pariton, merkkijonon keskimmäinen merkki jätetään huomiotta. Siksi ensimmäinen puolisko = "ma" ja toinen puoli = "olen". Nämä kaksi puoliskoa eivät ole samoja.

instagram viewer

Tulos on siis "Ei, annettu merkkijono ei ole symmetrinen".

Esimerkki 3: Anna str = "madma".

1. puolisko = "ma" ja toinen puoli = "ma". Merkkijonon molemmat puoliskot ovat samat.

Tulos on siis "Kyllä, annettu merkkijono on symmetrinen".

Algoritmi sen määrittämiseksi, onko tietty merkkijono symmetrinen vai ei

Voit määrittää, onko tietty merkkijono symmetrinen vai ei, noudattamalla seuraavaa lähestymistapaa:

  1. Etsi merkkijonon pituus.
  2. Etsi merkkijonon midIndex.
    • Jos merkkijonon pituus on parillinen, midIndex = pituus/2.
    • Jos merkkijonon pituus on pariton, midIndex = (pituus/2) + 1. Tässä tapauksessa merkkijonon keskimmäinen merkki jätetään huomiotta vertailun vuoksi.
  3. Alusta kaksi osoitinmuuttujaa osoitin 1 ja osoitin2. osoitin 1 tallentaa merkkijonon ensimmäisen merkin (0) ja osoitin2 tallentaa merkkijonon keskimmäisen merkin (midIndex) indeksin.
  4. Vertaa nyt merkkijonon puolikkaiden vastaavia merkkejä käyttämällä a sillä aikaa silmukka. Suorita a sillä aikaa silmukka kunnes osoitin 1.
  5. Vertaa vastaavia merkkejä indekseissä osoitin 1 ja osoitin2.
  6. Jos jokin vastaava merkki on erilainen, palauta väärä. Ja jos vastaavia merkkejä ei löydy erilaisista, palaa totta.
  7. Muista myös lisätä arvoa osoitin 1 ja osoitin2 jokaisessa iteroinnissa.

C ++ -ohjelma sen määrittämiseksi, onko tietty merkkijono symmetrinen vai ei

Alla on C ++ -ohjelma sen määrittämiseksi, onko tietty merkkijono symmetrinen vai ei:

// C ++ -ohjelma tarkistaa, onko merkkijono symmetrinen vai ei
#sisältää
käyttämällä nimiavaruutta std;
// Toiminto tarkistaa, onko merkkijono symmetrinen vai ei
bool isSymmetrical (merkkijono)
{
int midIndex;
int pituus = str.length ();
// Jos merkkijonon pituus on parillinen
jos (pituus % 2 == 0)
{
midIndex = pituus/2;
}
// Jos merkkijonon pituus on pariton
muu
{
midIndex = pituus/2 + 1;
}
int -osoitin1 = 0;
int -osoitin2 = midIndex;
kun taas (osoitin 1{
jos (str [osoitin1] == str [osoitin2])
{
osoitin1 += 1;
osoitin2 += 1;
}
muu
{
palauta epätosi;
}
}
palaa tosi;
}
// Kuljettajan koodi
int main ()
{
// Testitapaus: 1
merkkijono str1 = "abab";
cout << "String 1:" << str1 << endl;
jos (isSymmetrical (str1))
{
cout << "Kyllä, annettu merkkijono on symmetrinen" << endl;
}
muu
{
cout << "Ei, annettu merkkijono ei ole symmetrinen" << endl;
}
// Testitapaus: 2
merkkijono str2 = "rouva";
cout << "String 2:" << str2 << endl;
jos (isSymmetrical (str2))
{
cout << "Kyllä, annettu merkkijono on symmetrinen" << endl;
}
muu
{
cout << "Ei, annettu merkkijono ei ole symmetrinen" << endl;
}
// Testitapaus: 3
merkkijono str3 = "madma";
cout << "String 3:" << str3 << endl;
jos (isSymmetrical (str3))
{
cout << "Kyllä, annettu merkkijono on symmetrinen" << endl;
}
muu
{
cout << "Ei, annettu merkkijono ei ole symmetrinen" << endl;
}
// Testitapaus: 4
merkkijono str4 = "kansalainen";
cout << "String 4:" << str4 << endl;
jos (isSymmetrical (str4))
{
cout << "Kyllä, annettu merkkijono on symmetrinen" << endl;
}
muu
{
cout << "Ei, annettu merkkijono ei ole symmetrinen" << endl;
}
// Testitapaus: 5
merkkijono str5 = "khokho";
cout << "String 5:" << str5 << endl;
jos (isSymmetrical (str5))
{
cout << "Kyllä, annettu merkkijono on symmetrinen" << endl;
}
muu
{
cout << "Ei, annettu merkkijono ei ole symmetrinen" << endl;
}
palauta 0;
}

Lähtö:

Jono 1: abab
Kyllä, annettu merkkijono on symmetrinen
Jono 2: rouva
Ei, annettu merkkijono ei ole symmetrinen
Jono 3: Madma
Kyllä, annettu merkkijono on symmetrinen
Jono 4: kansalainen
Ei, annettu merkkijono ei ole symmetrinen
Jono 5: khokho
Kyllä, annettu merkkijono on symmetrinen

Aiheeseen liittyviä: Kuinka kääntää merkkijono C ++: ssa, Pythonissa ja JavaScriptissä

Python -ohjelma määrittää, onko tietty merkkijono symmetrinen vai ei

Alla on Python -ohjelma, joka määrittää, onko tietty merkkijono symmetrinen vai ei:

# Python -ohjelma tarkistaa, onko merkkijono symmetrinen vai ei
# Toiminto tarkistaa, onko merkkijono symmetrinen vai ei
def isSymmetrical (str):
midIndex = 0
pituus = len (str)
jos pituus%2 == 0:
midIndex = pituus // 2
muu:
midIndex = pituus // 2 + 1
osoitin1 = 0
osoitin2 = keskipiste
osoitin 1jos (str [osoitin1] == str [osoitin2]):
osoitin1 += 1
osoitin2 += 1
muu:
palauta Väärä
palaa tosi
# Testitapaus: 1
str1 = "abab"
tulosta ("Jono 1:", str1)
jos (isSymmetrical (str1)):
print ("Kyllä, annettu merkkijono on symmetrinen")
muu:
print ("Ei, annettu merkkijono ei ole symmetrinen")
# Testitapaus: 2
str2 = "rouva"
tulosta ("Jono 2:", str2)
jos (isSymmetrical (str2)):
print ("Kyllä, annettu merkkijono on symmetrinen")
muu:
print ("Ei, annettu merkkijono ei ole symmetrinen")
# Testitapaus: 3
str3 = "madma"
tulosta ("Jono 3:", str3)
jos (isSymmetrical (str3)):
print ("Kyllä, annettu merkkijono on symmetrinen")
muu:
print ("Ei, annettu merkkijono ei ole symmetrinen")
# Testitapaus: 4
str4 = "kansalainen"
tulosta ("Jono 4:", str4)
jos (isSymmetrical (str4)):
print ("Kyllä, annettu merkkijono on symmetrinen")
muu:
print ("Ei, annettu merkkijono ei ole symmetrinen")
# Testitapaus: 5
str5 = "khokho"
tulosta ("Jono 5:", str5)
jos (isSymmetrical (str5)):
print ("Kyllä, annettu merkkijono on symmetrinen")
muu:
print ("Ei, annettu merkkijono ei ole symmetrinen")

Lähtö:

Jono 1: abab
Kyllä, annettu merkkijono on symmetrinen
Jono 2: rouva
Ei, annettu merkkijono ei ole symmetrinen
Jono 3: Madma
Kyllä, annettu merkkijono on symmetrinen
Jono 4: kansalainen
Ei, annettu merkkijono ei ole symmetrinen
Jono 5: khokho
Kyllä, annettu merkkijono on symmetrinen

Aiheeseen liittyviä: Opetellaanko Pythonia? Näin käsittelet merkkijonoja

JavaScript -ohjelma määrittää, onko tietty merkkijono symmetrinen vai ei

Alla on JavaScript -ohjelma, joka määrittää, onko tietty merkkijono symmetrinen vai ei:

// JavaScript -ohjelma tarkistaa, onko merkkijono symmetrinen vai ei
// Toiminto tarkistaa, onko merkkijono symmetrinen vai ei
funktio onSymmetrical (str) {
var midIndex;
var pituus = str.length;
// Jos merkkijonon pituus on parillinen
jos (pituus % 2 == 0) {
midIndex = matematiikkalattia (pituus/2);
}
// Jos merkkijonon pituus on pariton
muu {
midIndex = matematiikkalattia (pituus/2) + 1;
}
var -osoitin1 = 0;
var osoitin2 = midIndex;
kun taas (osoitin 1jos (str [osoitin1] == str [osoitin2]) {
osoitin1 += 1;
osoitin2 += 1;
} muuta {
palauta epätosi;
}
}
palaa tosi;
}
// Testitapaus: 1
var str1 = "abab";
document.write ("Merkkijono 1:" + str1 + "
");
if (isSymmetrical (str1)) {
document.write ("Kyllä, annettu merkkijono on symmetrinen" + "
");
} muuta {
document.write ("Ei, annettu merkkijono ei ole symmetrinen" + "
");
}
// Testitapaus: 2
var str2 = "rouva";
document.write ("Merkkijono 2:" + str2 + "
");
if (isSymmetrical (str2)) {
document.write ("Kyllä, annettu merkkijono on symmetrinen" + "
");
} muuta {
document.write ("Ei, annettu merkkijono ei ole symmetrinen" + "
");
}
// Testitapaus: 3
var str3 = "madma";
document.write ("Merkkijono 3:" + str3 + "
");
if (isSymmetrical (str3)) {
document.write ("Kyllä, annettu merkkijono on symmetrinen" + "
");
} muuta {
document.write ("Ei, annettu merkkijono ei ole symmetrinen" + "
");
}
// Testitapaus: 4
var str4 = "kansalainen";
document.write ("Merkkijono 4:" + str4 + "
");
if (isSymmetrical (str4)) {
document.write ("Kyllä, annettu merkkijono on symmetrinen" + "
");
} muuta {
document.write ("Ei, annettu merkkijono ei ole symmetrinen" + "
");
}
// Testitapaus: 5
var str5 = "khokho";
document.write ("Merkkijono 5:" + str5 + "
");
if (isSymmetrical (str5)) {
document.write ("Kyllä, annettu merkkijono on symmetrinen" + "
");
} muuta {
document.write ("Ei, annettu merkkijono ei ole symmetrinen" + "
");
}

Lähtö:

Jono 1: abab
Kyllä, annettu merkkijono on symmetrinen
Jono 2: rouva
Ei, annettu merkkijono ei ole symmetrinen
Jono 3: Madma
Kyllä, annettu merkkijono on symmetrinen
Jono 4: kansalainen
Ei, annettu merkkijono ei ole symmetrinen
Jono 5: khokho
Kyllä, annettu merkkijono on symmetrinen

Aiheeseen liittyviä: Kuinka löytää merkkijonosta useimmin esiintyvä merkki

Ratkaise ongelmat merkkijonojen perusteella

Jouset ovat yksi haastattelujen ohjelmoinnin tärkeimmistä aiheista. Sinun on ratkaistava joitakin kuuluisia ohjelmointiongelmia merkkijonojen perusteella, kuten tarkista, onko merkkijono palindromi, tarkista jos kaksi merkkijonoa ovat toistensa anagrammeja, etsi merkkijonon useimmin esiintyvä merkki, käännä merkkijono, jne. jos haluat olla täysin valmistautunut.

JaaTweetSähköposti
Kuinka tarkistaa, onko merkkijono palindromi

Onko kielesi palindromi? Käytitpä sitten Pythonia, C ++: ta tai JavaScriptiä, ota selvää jollakin näistä algoritmeista.

Lue seuraava

Liittyvät aiheet
  • Ohjelmointi
  • JavaScript
  • Python
  • Koodausoppaat
  • C Ohjelmointi
Kirjailijasta
Yuvraj Chandra (50 artikkelia julkaistu)

Yuvraj on tietojenkäsittelytieteen perusopiskelija Delhin yliopistossa Intiassa. Hän on intohimoinen Full Stack Web -kehityksestä. Kun hän ei kirjoita, hän tutkii eri tekniikoiden syvyyttä.

Lisää Yuvraj Chandralta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi