Autors: Yuvraj Chandra
KopīgotČivinātE-pasts

C ++, Python, C vai JavaScript: neatkarīgi no tā, ko izmantojat, izmantojiet šo algoritmu, lai noteiktu simetriskas virknes.

Stīgu sauc par simetrisku, ja abas virknes puses ir vienādas. Šajā rakstā jūs uzzināsit algoritmu, lai noteiktu, vai dotā virkne ir simetriska. Jūs arī uzzināsit, kā ieviest šo algoritmu populārākajās programmēšanas valodās, piemēram, C ++, Python, C un JavaScript.

Paziņojums par problēmu

Jums tiek dota virkne. Jums jānosaka, vai norādītā virkne ir simetriska vai nē.

1. piemērs: Ļaujiet str = "abab".

Dotais ir simetrisks, jo abas virknes puses ir vienādas.

Tādējādi izvade ir "Jā, dotā virkne ir simetriska".

2. piemērs: Ļaujiet str = "kundze".

Ja virknes garums ir nepāra, virknes vidējā rakstzīme tiek ignorēta. Tāpēc 1. puslaiks = "ma" un 2. puse = "esmu". Abas puses nav vienādas.

Tādējādi izvade ir "Nē, dotā virkne nav simetriska".

3. piemērs: Ļaujiet str = "madma".

1. puse = "ma" un otrā puse = "ma". Abas virknes puses ir vienādas.

instagram viewer

Tādējādi izvade ir "Jā, dotā virkne ir simetriska".

Algoritms, lai noteiktu, vai dotā virkne ir simetriska vai nē

Jūs varat noteikt, vai norādītā virkne ir simetriska vai nē, ievērojot tālāk norādīto pieeju.

  1. Atrodiet virknes garumu.
  2. Atrodiet virknes vidusindeksu.
    • Ja virknes garums ir vienāds, midIndex = garums/2.
    • Ja virknes garums ir nepāra, midIndex = (garums/2) + 1. Šajā gadījumā salīdzināšanai tiek ignorēta virknes vidējā rakstzīme.
  3. Inicializējiet divus rādītāju mainīgos rādītājs1 un rādītājs2. rādītājs1 saglabās virknes pirmās rakstzīmes (0) indeksu un rādītājs2 saglabās virknes vidējās rakstzīmes (midIndex) indeksu.
  4. Tagad salīdziniet abu virknes pusi atbilstošās rakstzīmes, izmantojot a kamēr cilpa. Palaist a kamēr cilpa līdz rādītājs1.
  5. Salīdziniet atbilstošās rakstzīmes indeksos rādītājs1 un rādītājs2.
  6. Ja kāda atbilstoša rakstzīme ir atšķirīga, atgriezieties nepatiesa. Un, ja atbilstošās rakstzīmes neatrodas atšķirīgas, atgriezieties taisnība.
  7. Tāpat noteikti palieliniet vērtību rādītājs1 un rādītājs2 katrā atkārtojumā.

C ++ programma, lai noteiktu, vai dotā virkne ir simetriska vai nē

Zemāk ir programma C ++, lai noteiktu, vai dotā virkne ir simetriska.

// C ++ programma, lai pārbaudītu, vai virkne ir simetriska
#iekļaut
izmantojot nosaukumvietas std;
// Funkcija, lai pārbaudītu, vai virkne ir simetriska
bool isSimetrisks (stīgu str)
{
int midIndex;
int garums = str.length ();
// Ja virknes garums ir vienāds
ja (garums% 2 == 0)
{
midIndex = garums/2;
}
// Ja virknes garums ir nepāra
citādi
{
midIndex = garums/2 + 1;
}
int rādītājs1 = 0;
int rādītājs2 = vidusindekss;
kamēr (rādītājs 1{
ja (str [rādītājs1] == str [rādītājs2])
{
rādītājs1 += 1;
rādītājs2 += 1;
}
citādi
{
atgriezt nepatiesu;
}
}
atgriezties patiesi;
}
// Vadītāja kods
int main ()
{
Testa gadījums: 1
virkne str1 = "abab";
cout << "String 1:" << str1 << endl;
ja (irSimetrisks (str1))
{
cout << "Jā, dotā virkne ir simetriska" << endl;
}
citādi
{
cout << "Nē, dotā virkne nav simetriska" << endl;
}
Testa gadījums: 2
string str2 = "kundze";
cout << "String 2:" << str2 << endl;
ja (isSimetrisks (str2))
{
cout << "Jā, dotā virkne ir simetriska" << endl;
}
citādi
{
cout << "Nē, dotā virkne nav simetriska" << endl;
}
// Testa gadījums: 3
virkne str3 = "madma";
cout << "String 3:" << str3 << endl;
ja (irSimetrisks (str3))
{
cout << "Jā, dotā virkne ir simetriska" << endl;
}
citādi
{
cout << "Nē, dotā virkne nav simetriska" << endl;
}
Testa gadījums: 4
virkne str4 = "pilsoniska";
cout << "String 4:" << str4 << endl;
ja (irSimetrisks (str4))
{
cout << "Jā, dotā virkne ir simetriska" << endl;
}
citādi
{
cout << "Nē, dotā virkne nav simetriska" << endl;
}
Testa gadījums: 5
virkne str5 = "khokho";
cout << "String 5:" << str5 << endl;
ja (irSimetrisks (str5))
{
cout << "Jā, dotā virkne ir simetriska" << endl;
}
citādi
{
cout << "Nē, dotā virkne nav simetriska" << endl;
}
atgriezties 0;
}

Izeja:

1. virkne: abab
Jā, dotā virkne ir simetriska
2. virkne: kundze
Nē, dotā virkne nav simetriska
3. virkne: madma
Jā, dotā virkne ir simetriska
4. virkne: pilsonisks
Nē, dotā virkne nav simetriska
5. virkne: khokho
Jā, dotā virkne ir simetriska

Saistīts: Kā mainīt stīgu C ++, Python un JavaScript

Python programma, lai noteiktu, vai dotā virkne ir simetriska vai nē

Zemāk ir programma Python, lai noteiktu, vai dotā virkne ir simetriska.

# Python programma, lai pārbaudītu, vai virkne ir simetriska
# Funkcija, lai pārbaudītu, vai virkne ir simetriska
def isSimetrisks (str):
vidusindekss = 0
garums = len (str)
ja garums%2 == 0:
midIndex = garums // 2
cits:
midIndex = garums // 2 + 1
rādītājs1 = 0
rādītājs2 = vidusindekss
kamēr rādītājs 1ja (str [rādītājs1] == str [rādītājs2]):
rādītājs1 += 1
rādītājs2 += 1
cits:
atgriešanās False
atgriezties True
# Pārbaudes gadījums: 1
str1 = "abab"
drukāt ("String 1:", str1)
ja (irSimetrisks (str1)):
drukāt ("Jā, dotā virkne ir simetriska")
cits:
drukāt ("Nē, dotā virkne nav simetriska")
# Pārbaudes gadījums: 2
str2 = "kundze"
drukāt ("String 2:", str2)
ja (isSimetrisks (str2)):
drukāt ("Jā, dotā virkne ir simetriska")
cits:
drukāt ("Nē, dotā virkne nav simetriska")
# Pārbaudes gadījums: 3
str3 = "madma"
drukāt ("String 3:", str3)
ja (isSimetrisks (str3)):
drukāt ("Jā, dotā virkne ir simetriska")
cits:
drukāt ("Nē, dotā virkne nav simetriska")
# Pārbaudes gadījums: 4
str4 = "pilsonisks"
drukāt ("String 4:", str4)
ja (isSimetrisks (str4)):
drukāt ("Jā, dotā virkne ir simetriska")
cits:
drukāt ("Nē, dotā virkne nav simetriska")
# Pārbaudes gadījums: 5
str5 = "khokho"
drukāt ("String 5:", str5)
ja (irSimetrisks (str5)):
drukāt ("Jā, dotā virkne ir simetriska")
cits:
drukāt ("Nē, dotā virkne nav simetriska")

Izeja:

1. virkne: abab
Jā, dotā virkne ir simetriska
2. virkne: kundze
Nē, dotā virkne nav simetriska
3. virkne: madma
Jā, dotā virkne ir simetriska
4. virkne: pilsonisks
Nē, dotā virkne nav simetriska
5. virkne: khokho
Jā, dotā virkne ir simetriska

Saistīts: Mācīties Python? Lūk, kā manipulēt ar virknēm

JavaScript programma, lai noteiktu, vai dotā virkne ir simetriska vai nē

Zemāk ir JavaScript programma, lai noteiktu, vai dotā virkne ir simetriska.

// JavaScript programma, lai pārbaudītu, vai virkne ir simetriska
// Funkcija, lai pārbaudītu, vai virkne ir simetriska
funkcija isSymmetrical (str) {
var midIndex;
var garums = str.length;
// Ja virknes garums ir vienāds
ja (garums % 2 == 0) {
midIndex = Math.floor (garums/2);
}
// Ja virknes garums ir nepāra
cits {
midIndex = Matemātikas grīda (garums/2) + 1;
}
var rādītājs1 = 0;
var rādītājs2 = vidusIndekss;
kamēr (rādītājs 1ja (str [rādītājs1] == str [rādītājs2]) {
rādītājs1 += 1;
rādītājs2 += 1;
} cits {
atgriezt nepatiesu;
}
}
atgriezties patiesi;
}
Testa gadījums: 1
var str1 = "ababs";
document.write ("String 1:" + str1 + "
");
ja (isSimetrisks (str1)) {
document.write ("Jā, dotā virkne ir simetriska" + "
");
} cits {
document.write ("Nē, dotā virkne nav simetriska" + "
");
}
Testa gadījums: 2
var str2 = "kundze";
document.write ("Virkne 2:" + str2 + "
");
ja (isSimetrisks (str2)) {
document.write ("Jā, dotā virkne ir simetriska" + "
");
} cits {
document.write ("Nē, dotā virkne nav simetriska" + "
");
}
// Testa gadījums: 3
var str3 = "madma";
document.write ("3. virkne:" + str3 + "
");
ja (isSimetrisks (str3)) {
document.write ("Jā, dotā virkne ir simetriska" + "
");
} cits {
document.write ("Nē, dotā virkne nav simetriska" + "
");
}
Testa gadījums: 4
var str4 = "pilsonisks";
document.write ("String 4:" + str4 + "
");
ja (isSimetrisks (str4)) {
document.write ("Jā, dotā virkne ir simetriska" + "
");
} cits {
document.write ("Nē, dotā virkne nav simetriska" + "
");
}
Testa gadījums: 5
var str5 = "khokho";
document.write ("String 5:" + str5 + "
");
ja (isSimetrisks (str5)) {
document.write ("Jā, dotā virkne ir simetriska" + "
");
} cits {
document.write ("Nē, dotā virkne nav simetriska" + "
");
}

Izeja:

1. virkne: abab
Jā, dotā virkne ir simetriska
2. virkne: kundze
Nē, dotā virkne nav simetriska
3. virkne: madma
Jā, dotā virkne ir simetriska
4. virkne: pilsonisks
Nē, dotā virkne nav simetriska
5. virkne: khokho
Jā, dotā virkne ir simetriska

Saistīts: Kā atrast virknē visbiežāk sastopamo rakstzīmi

Atrisiniet problēmas, pamatojoties uz virknēm

Virknes ir viena no vissvarīgākajām interviju plānošanas tēmām. Jums jāatrisina dažas no slavenajām programmēšanas problēmām, pamatojoties uz virknēm, piemēram, pārbaudīt, vai virkne nav palindroms, pārbaudiet ja divas virknes ir viena otras anagrammas, atrodiet virknē visbiežāk sastopamo rakstzīmi, apgrieziet virkni, utt. ja vēlaties būt pilnībā sagatavots.

KopīgotČivinātE-pasts
Kā pārbaudīt, vai virkne ir palindroms

Vai jūsu stīga ir palindroms? Neatkarīgi no tā, vai izmantojat Python, C ++ vai JavaScript, izmantojiet kādu no šiem algoritmiem, lai uzzinātu.

Lasīt Tālāk

Saistītās tēmas
  • Programmēšana
  • JavaScript
  • Python
  • Kodēšanas apmācības
  • C Programmēšana
Par autoru
Yuvraj Chandra (Publicēti 50 raksti)

Yuvraj ir datorzinātņu bakalaura students Deli universitātē, Indijā. Viņš aizraujas ar Full Stack tīmekļa izstrādi. Kad viņš neraksta, viņš pēta dažādu tehnoloģiju dziļumu.

Vairāk no Yuvraj Chandra

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu