Написао Иуврај Цхандра
ОбјавиТвеетЕмаил

Ц ++, Питхон, Ц или ЈаваСцрипт: без обзира који користите, користите овај алгоритам за одређивање симетричних низова.

За струну се каже да је симетрична ако су обе половине низа исте. У овом чланку ћете научити алгоритам за одређивање да ли је дати низ симетричан или није. Такође ћете научити како да примените овај алгоритам у најпопуларнијим програмским језицима као што су Ц ++, Питхон, Ц и ЈаваСцрипт.

Изјава о проблему

Дали сте низ. Треба да утврдите да ли је дати низ симетричан или не.

Пример 1: Нека стр = "абаб".

Дати је симетричан јер су обе половине жице исте.

Дакле, излаз је „Да, дати низ је симетричан“.

Пример 2: Нека стр = "госпођо".

Ако је дужина низа непарна, средњи знак низа се занемарује. Према томе, 1. полувреме = "ма" и 2. полувреме = "ам". Две половине нису исте.

Дакле, излаз је „Не, задати низ није симетричан“.

Пример 3: Нека стр = "мадма".

1. полувреме = "ма" и друго полувреме = "ма". Обе половине жице су исте.

Дакле, излаз је „Да, дати низ је симетричан“.

Алгоритам за утврђивање да ли је дати низ симетричан или не

Можете да утврдите да ли је дати низ симетричан или не следећи следећи приступ:

  1. Пронађите дужину низа.
  2. Пронађите средњи индекс низа.
    • Ако је дужина низа парна, мидИндек = дужина / 2.
    • Ако је дужина низа непарна, мидИндек = (дужина / 2) + 1. У овом случају, средњи знак низа се занемарује ради поређења.
  3. Иницијализујте две променљиве показивача показивач1 и показивач2. показивач1 ће сачувати индекс првог знака (0) низа и показивач2 чува индекс средњег знака (мидИндек) низа.
  4. Сада упоредите одговарајуће знакове обе половине низа помоћу а док петља. Покрени а док петља до показивач1.
  5. Упоредите одговарајуће знакове у индексима показивач1 и показивач2.
  6. Ако се утврди да је било који одговарајући знак различит, вратите се лажно. А ако ниједан одговарајући знак није пронађен различит, вратите се истина.
  7. Такође, уверите се да сте повећали вредност показивач1 и показивач2 у свакој итерацији.

Ц ++ програм за одређивање да ли је дати низ симетричан или није

Испод је програм Ц ++ који одређује да ли је дати низ симетричан или не:

// Ц ++ програм за проверу да ли је низ симетричан или не
#инцлуде
коришћење простора имена стд;
// Функција за проверу да ли је низ симетричан или не
боол исСимметрицал (стринг стр)
{
инт мидИндек;
инт ленгтх = стр.ленгтх ();
// Ако је дужина низа парна
ако (дужина% 2 == 0)
{
мидИндек = дужина / 2;
}
// Ако је дужина низа непарна
иначе
{
мидИндек = дужина / 2 + 1;
}
инт показивач1 = 0;
инт поинтер2 = мидИндек;
вхиле (показивач1{
иф (стр [показивач1] == стр [показивач2])
{
показивач1 + = 1;
показивач2 + = 1;
}
иначе
{
ретурн фалсе;
}
}
ретурн труе;
}
// Код возача
инт маин ()
{
// Тест пример: 1
стринг стр1 = "абаб";
цоут << "Низ 1:" << стр1 << ендл;
иф (исСимметрицал (стр1))
{
цоут << "Да, дати низ је симетричан" << ендл;
}
иначе
{
цоут << "Не, задати низ није симетричан" << ендл;
}
// Тест пример: 2
стринг стр2 = "госпођо";
цоут << "Низ 2:" << стр2 << ендл;
иф (исСимметрицал (стр2))
{
цоут << "Да, дати низ је симетричан" << ендл;
}
иначе
{
цоут << "Не, задати низ није симетричан" << ендл;
}
// Тест пример: 3
стринг стр3 = "мадма";
цоут << "Низ 3:" << стр3 << ендл;
иф (исСимметрицал (стр3))
{
цоут << "Да, дати низ је симетричан" << ендл;
}
иначе
{
цоут << "Не, задати низ није симетричан" << ендл;
}
// Тест цасе: 4
стринг стр4 = "грађански";
цоут << "Низ 4:" << стр4 << ендл;
иф (исСимметрицал (стр4))
{
цоут << "Да, дати низ је симетричан" << ендл;
}
иначе
{
цоут << "Не, задати низ није симетричан" << ендл;
}
// Тест цасе: 5
стринг стр5 = "кхокхо";
цоут << "Низ 5:" << стр5 << ендл;
иф (исСимметрицал (стр5))
{
цоут << "Да, дати низ је симетричан" << ендл;
}
иначе
{
цоут << "Не, задати низ није симетричан" << ендл;
}
ретурн 0;
}

Излаз:

Низ 1: абаб
Да, дати низ је симетричан
2. низ: госпођо
Не, дати низ није симетричан
3. низ: мадма
Да, дати низ је симетричан
Низ 4: грађански
Не, дати низ није симетричан
Низ 5: кхокхо
Да, дати низ је симетричан

Повезан: Како обрнути низ у Ц ++, Питхон и ЈаваСцрипт

Питхон програм за одређивање да ли је дати низ симетричан или није

Испод је програм Питхон који одређује да ли је дати низ симетричан или не:

# Питхон програм за проверу да ли је низ симетричан или није
# Функција за проверу да ли је низ симетричан или не
деф исСимметрицал (стр):
мидИндек = 0
дужина = лен (стр)
ако је дужина% 2 == 0:
мидИндек = дужина // 2
друго:
мидИндек = дужина // 2 + 1
показивач1 = 0
поинтер2 = мидИндек
док показивач1иф (стр [показивач1] == стр [показивач2]):
показивач1 + = 1
показивач2 + = 1
друго:
повратак Нетачно
повратак Тачно
# Тест случај: 1
стр1 = "абаб"
принт ("Низ 1:", стр1)
иф (исСимметрицал (стр1)):
принт ("Да, дати низ је симетричан")
друго:
принт ("Не, задати низ није симетричан")
# Тест случај: 2
стр2 = "госпођо"
принт ("Низ 2:", стр2)
иф (исСимметрицал (стр2)):
принт ("Да, дати низ је симетричан")
друго:
принт ("Не, задати низ није симетричан")
# Тест случај: 3
стр3 = "мадма"
принт ("Низ 3:", стр3)
иф (исСимметрицал (стр3)):
принт ("Да, дати низ је симетричан")
друго:
принт ("Не, задати низ није симетричан")
# Тест случај: 4
стр4 = "грађански"
принт ("Низ 4:", стр4)
иф (исСимметрицал (стр4)):
принт ("Да, дати низ је симетричан")
друго:
принт ("Не, задати низ није симетричан")
# Тест случај: 5
стр5 = "кхокхо"
принт ("Низ 5:", стр5)
иф (исСимметрицал (стр5)):
принт ("Да, дати низ је симетричан")
друго:
принт ("Не, задати низ није симетричан")

Излаз:

Низ 1: абаб
Да, дати низ је симетричан
2. низ: госпођо
Не, дати низ није симетричан
3. низ: мадма
Да, дати низ је симетричан
Низ 4: грађански
Не, дати низ није симетричан
Низ 5: кхокхо
Да, дати низ је симетричан

Повезан: Учите Питхон? Ево како манипулисати жицама

ЈаваСцрипт програм за одређивање да ли је дати низ симетричан или није

Испод је ЈаваСцрипт програм за утврђивање да ли је дати низ симетричан или не:

// ЈаваСцрипт програм за проверу да ли је низ симетричан или не
// Функција за проверу да ли је низ симетричан или не
функција јеСиметрична (стр) {
вар мидИндек;
вар ленгтх = стр.ленгтх;
// Ако је дужина низа парна
иф (дужина% 2 == 0) {
мидИндек = Матх.флоор (дужина / 2);
}
// Ако је дужина низа непарна
елсе {
мидИндек = Матх.флоор (ленгтх / 2) + 1;
}
вар показивач1 = 0;
вар поинтер2 = мидИндек;
вхиле (показивач1иф (стр [показивач1] == стр [показивач2]) {
показивач1 + = 1;
показивач2 + = 1;
} елсе {
ретурн фалсе;
}
}
ретурн труе;
}
// Тест пример: 1
вар стр1 = "абаб";
доцумент.врите ("Низ 1:" + стр1 + "
");
иф (исСимметрицал (стр1)) {
доцумент.врите ("Да, дати низ је симетричан" + "
");
} елсе {
доцумент.врите ("Не, дати низ није симетричан" + "
");
}
// Тест пример: 2
вар стр2 = "госпођо";
доцумент.врите ("Низ 2:" + стр2 + "
");
иф (исСимметрицал (стр2)) {
доцумент.врите ("Да, дати низ је симетричан" + "
");
} елсе {
доцумент.врите ("Не, дати низ није симетричан" + "
");
}
// Тест пример: 3
вар стр3 = "мадма";
доцумент.врите ("Низ 3:" + стр3 + "
");
иф (исСиметрично (стр3)) {
доцумент.врите ("Да, дати низ је симетричан" + "
");
} елсе {
доцумент.врите ("Не, дати низ није симетричан" + "
");
}
// Тест цасе: 4
вар стр4 = "грађански";
доцумент.врите ("Низ 4:" + стр4 + "
");
иф (исСиметрично (стр4)) {
доцумент.врите ("Да, дати низ је симетричан" + "
");
} елсе {
доцумент.врите ("Не, дати низ није симетричан" + "
");
}
// Тест цасе: 5
вар стр5 = "кхокхо";
доцумент.врите ("Стринг 5:" + стр5 + "
");
иф (исСиметрично (стр5)) {
доцумент.врите ("Да, дати низ је симетричан" + "
");
} елсе {
доцумент.врите ("Не, дати низ није симетричан" + "
");
}

Излаз:

Низ 1: абаб
Да, дати низ је симетричан
2. низ: госпођо
Не, дати низ није симетричан
3. низ: мадма
Да, дати низ је симетричан
Низ 4: грађански
Не, дати низ није симетричан
Низ 5: кхокхо
Да, дати низ је симетричан

Повезан: Како пронаћи лик који се најчешће појављује у низу

Решите проблеме засноване на низовима

Гудачи су једна од најважнијих тема за програмирање интервјуа. Морате решити неке од познатих програмских проблема заснованих на низовима, попут провере да ли је низ палиндром, проверите ако су два низа међусобно анаграми, пронађите најчешћи знак у низу, обрните низ, итд. ако желите да будете потпуно спремни.

ОбјавиТвеетЕмаил
Како проверити да ли је низ палиндром

Је ли ваша жица палиндром? Било да користите Питхон, Ц ++ или ЈаваСцрипт, користите један од ових алгоритама да бисте сазнали.

Прочитајте следеће

Повезане теме
  • Програмирање
  • ЈаваСцрипт
  • Питхон
  • Кодирање Туториали
  • Ц Програмирање
О аутору
Иуврај Цхандра (Објављено 50 чланака)

Иуврај је студент основних студија рачунарства на Универзитету у Делхију у Индији. Он је страствен за Фулл Стацк Веб Девелопмент. Кад не пише, истражује дубину различитих технологија.

Још од Иуврај Цхандра

Претплатите се на наш билтен

Придружите се нашем билтену за техничке савете, критике, бесплатне е -књиге и ексклузивне понуде!

Кликните овде да бисте се претплатили