Avtor Yuvraj Chandra
DelitiCvrkutatiE-naslov

C ++, Python, C ali JavaScript: ne glede na to, katero uporabite, uporabite ta algoritem za določanje simetričnih nizov.

Niz naj bi bil simetričen, če sta obe polovici niza enaki. V tem članku boste izvedeli algoritem za ugotavljanje, ali je dani niz simetričen ali ne. Naučili se boste tudi, kako implementirati ta algoritem v najbolj priljubljenih programskih jezikih, kot so C ++, Python, C in JavaScript.

Izjava o težavi

Dobili ste niz. Ugotoviti morate, ali je dani niz simetričen ali ne.

Primer 1: Naj str = "abab".

Podana je simetrična, saj sta obe polovici niza enaki.

Tako je rezultat "Da, dani niz je simetričen".

2. primer: Naj str = "gospa".

Če je dolžina niza nenavadna, se srednji znak niza prezre. Zato je 1. polčas = "ma" in 2. polčas = "am". Obe polovici nista enaki.

Tako je rezultat "Ne, dani niz ni simetričen".

3. primer: Naj str = "madma".

1. polčas = "ma" in 2. polčas = "ma". Obe polovici vrvice sta enaki.

instagram viewer

Tako je rezultat "Da, dani niz je simetričen".

Algoritem za določitev, ali je dani niz simetričen ali ne

S spodnjim pristopom lahko ugotovite, ali je dani niz simetričen ali ne:

  1. Poiščite dolžino niza.
  2. Poiščite midIndex niza.
    • Če je dolžina niza enakomerna, midIndex = dolžina / 2.
    • Če je dolžina niza nenavadna, midIndex = (dolžina / 2) + 1. V tem primeru se za primer prezre srednji znak niza.
  3. Inicializirajte dve spremenljivki kazalca kazalec1 in kazalec2. kazalec1 bo shranil indeks prvega znaka (0) niza in kazalec2 bo shranil indeks srednjega znaka (midIndex) niza.
  4. Zdaj primerjajte ustrezne znake obeh polovic nizov z uporabo medtem zanko. Zaženite a medtem zanko do kazalec1.
  5. Primerjajte ustrezne znake v indeksih kazalec1 in kazalec2.
  6. Če je kateri koli ustrezen znak drugačen, ga vrnite napačno. Če ustreznih znakov ne najdemo drugačnih, se vrnite prav.
  7. Prav tako poskrbite, da boste povečali vrednost kazalec1 in kazalec2 v vsaki ponovitvi.

Program C ++ za ugotavljanje, ali je dani niz simetričen ali ne

Spodaj je program C ++ za ugotavljanje, ali je dani niz simetričen ali ne:

// program C ++ za preverjanje, ali je niz simetričen ali ne
#include
uporaba imenskega prostora std;
// Funkcija preverjanja, ali je niz simetričen ali ne
bool isSymmetrical (string str)
{
int midIndex;
int dolžina = str.length ();
// Če je dolžina niza soda
če (dolžina% 2 == 0)
{
midIndex = dolžina / 2;
}
// Če je dolžina niza liha
drugače
{
midIndex = dolžina / 2 + 1;
}
int kazalec1 = 0;
int pointer2 = midIndex;
medtem ko (kazalec1{
če (str [pointer1] == str [pointer2])
{
kazalec1 += 1;
kazalec2 += 1;
}
drugače
{
return false;
}
}
vrni true;
}
// Koda voznika
int main ()
{
// Testni primer: 1
niz str1 = "abab";
cout << "Niz 1:" << str1 << endl;
if (isSymmetrical (str1))
{
cout << "Da, dani niz je simetričen" << endl;
}
drugače
{
cout << "Ne, dani niz ni simetričen" << endl;
}
// Testni primer: 2
niz str2 = "gospa";
cout << "Niz 2:" << str2 << endl;
if (isSymmetrical (str2))
{
cout << "Da, dani niz je simetričen" << endl;
}
drugače
{
cout << "Ne, dani niz ni simetričen" << endl;
}
// Testni primer: 3
niz str3 = "madma";
cout << "Niz 3:" << str3 << endl;
if (isSymmetrical (str3))
{
cout << "Da, dani niz je simetričen" << endl;
}
drugače
{
cout << "Ne, dani niz ni simetričen" << endl;
}
// Testni primer: 4
niz str4 = "državljanski";
cout << "Niz 4:" << str4 << endl;
if (isSymmetrical (str4))
{
cout << "Da, dani niz je simetričen" << endl;
}
drugače
{
cout << "Ne, dani niz ni simetričen" << endl;
}
// Testni primer: 5
niz str5 = "khokho";
cout << "Niz 5:" << str5 << endl;
if (isSymmetrical (str5))
{
cout << "Da, dani niz je simetričen" << endl;
}
drugače
{
cout << "Ne, dani niz ni simetričen" << endl;
}
vrnitev 0;
}

Izhod:

Niz 1: abab
Da, dani niz je simetričen
Niz 2: gospa
Ne, dani niz ni simetričen
Niz 3: madma
Da, dani niz je simetričen
Niz 4: civic
Ne, dani niz ni simetričen
Niz 5: khokho
Da, dani niz je simetričen

Povezano: Kako obrniti niz v C ++, Python in JavaScript

Program Python za ugotavljanje, ali je dani niz simetričen ali ne

Spodaj je program Python za ugotavljanje, ali je dani niz simetričen ali ne:

# Program Python za preverjanje, ali je niz simetričen ali ne
# Funkcija za preverjanje, ali je niz simetričen ali ne
def isSymmetrical (str):
midIndex = 0
dolžina = len (str)
če je dolžina% 2 == 0:
midIndex = dolžina // 2
sicer:
midIndex = dolžina // 2 + 1
kazalec1 = 0
kazalec2 = midIndex
medtem ko kazalec1če (str [pointer1] == str [pointer2]):
kazalec1 + = 1
kazalec2 + = 1
sicer:
vrnitev False
vrni True
# Testni primer: 1
str1 = "abab"
print ("String 1:", str1)
if (isSymmetrical (str1)):
print ("Da, dani niz je simetričen")
sicer:
print ("Ne, dani niz ni simetričen")
# Testni primer: 2
str2 = "gospa"
print ("String 2:", str2)
if (isSymmetrical (str2)):
print ("Da, dani niz je simetričen")
sicer:
print ("Ne, dani niz ni simetričen")
# Testni primer: 3
str3 = "madma"
print ("String 3:", str3)
if (isSymmetrical (str3)):
print ("Da, dani niz je simetričen")
sicer:
print ("Ne, dani niz ni simetričen")
# Testni primer: 4
str4 = "državljanska"
print ("String 4:", str4)
if (isSymmetrical (str4)):
print ("Da, dani niz je simetričen")
sicer:
print ("Ne, dani niz ni simetričen")
# Testni primer: 5
str5 = "khokho"
print ("String 5:", str5)
if (isSymmetrical (str5)):
print ("Da, dani niz je simetričen")
sicer:
print ("Ne, dani niz ni simetričen")

Izhod:

Niz 1: abab
Da, dani niz je simetričen
Niz 2: gospa
Ne, dani niz ni simetričen
Niz 3: madma
Da, dani niz je simetričen
Niz 4: civic
Ne, dani niz ni simetričen
Niz 5: khokho
Da, dani niz je simetričen

Povezano: Učenje Pythona? Tu je navodila za upravljanje z nizi

Program JavaScript za določitev, ali je dani niz simetričen ali ne

Spodaj je program JavaScript za določitev, ali je dani niz simetričen ali ne:

// Program JavaScript za preverjanje, ali je niz simetričen ali ne
// Funkcija preverjanja, ali je niz simetričen ali ne
funkcija jeSimetrična (str) {
var midIndex;
var dolžina = str.length;
// Če je dolžina niza soda
če (dolžina % 2 == 0) {
midIndex = Math.floor (dolžina/2);
}
// Če je dolžina niza liha
drugače {
midIndex = Math.floor (dolžina/2) + 1;
}
var kazalec1 = 0;
varni kazalec2 = midIndex;
medtem ko (kazalec1if (str [pointer1] == str [pointer2]) {
kazalec1 += 1;
kazalec2 += 1;
} drugo {
return false;
}
}
vrni true;
}
// Testni primer: 1
var str1 = "abab";
document.write ("Niz 1:" + str1 + "
");
if (isSimetrično (str1)) {
document.write ("Da, dani niz je simetričen" + "
");
} drugo {
document.write ("Ne, dani niz ni simetričen" + "
");
}
// Testni primer: 2
var str2 = "gospa";
document.write ("Niz 2:" + str2 + "
");
if (isSimetrično (str2)) {
document.write ("Da, dani niz je simetričen" + "
");
} drugo {
document.write ("Ne, dani niz ni simetričen" + "
");
}
// Testni primer: 3
var str3 = "madma";
document.write ("Niz 3:" + str3 + "
");
if (isSimetrično (str3)) {
document.write ("Da, dani niz je simetričen" + "
");
} drugo {
document.write ("Ne, dani niz ni simetričen" + "
");
}
// Testni primer: 4
var str4 = "državljanski";
document.write ("Niz 4:" + str4 + "
");
if (isSymmetrical (str4)) {
document.write ("Da, dani niz je simetričen" + "
");
} drugo {
document.write ("Ne, dani niz ni simetričen" + "
");
}
// Testni primer: 5
var str5 = "khokho";
document.write ("Niz 5:" + str5 + "
");
if (isSimetrično (str5)) {
document.write ("Da, dani niz je simetričen" + "
");
} drugo {
document.write ("Ne, dani niz ni simetričen" + "
");
}

Izhod:

Niz 1: abab
Da, dani niz je simetričen
Niz 2: gospa
Ne, dani niz ni simetričen
Niz 3: madma
Da, dani niz je simetričen
Niz 4: civic
Ne, dani niz ni simetričen
Niz 5: khokho
Da, dani niz je simetričen

Povezano: Kako najti najpogostejši lik v nizu

Rešite težave na podlagi nizov

Strune so ena najpomembnejših tem za programiranje intervjujev. Rešiti morate nekatere znane programske težave, ki temeljijo na nizih, na primer preverite, ali je niz palindrom, preverite če sta dva niza med seboj anagrami, poiščite najpogosteje pojavljeni znak v nizu, obrnite niz, itd. če želite biti popolnoma pripravljeni.

DelitiCvrkutatiE-naslov
Kako preveriti, ali je niz palindrom

Je vaša struna palindrom? Ne glede na to, ali uporabljate Python, C ++ ali JavaScript, uporabite enega od teh algoritmov, če želite izvedeti.

Preberite Naprej

Sorodne teme
  • Programiranje
  • JavaScript
  • Python
  • Vadnice za kodiranje
  • C Programiranje
O avtorju
Yuvraj Chandra (50 objavljenih člankov)

Yuvraj je dodiplomski študent računalništva na Univerzi v Delhiju v Indiji. Navdušen je nad spletnim razvojem Full Stack. Ko ne piše, raziskuje globino različnih tehnologij.

Več od Yuvraja Chandre

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, če se želite naročiti