Автор Юврадж Чандра
ДелитьсяТвитнутьЭлектронное письмо

C ++, Python, C или JavaScript: независимо от того, что вы используете, используйте этот алгоритм для определения симметричных строк.

Струна называется симметричной, если обе половины струны одинаковы. В этой статье вы узнаете алгоритм, позволяющий определить, является ли данная строка симметричной или нет. Вы также узнаете, как реализовать этот алгоритм на самых популярных языках программирования, таких как C ++, Python, C и JavaScript.

Постановка задачи

Вам дана строка. Вам необходимо определить, является ли данная струна симметричной или нет.

Пример 1: Пусть str = "abab".

Это симметрично, так как обе половинки струны одинаковые.

Таким образом, вывод будет «Да, данная строка симметрична».

Пример 2: Пусть str = "мадам".

Если длина строки нечетная, средний символ строки игнорируется. Следовательно, 1-я половина = «ma», а 2-я половина = «am». Две половинки не совпадают.

Таким образом, вывод будет «Нет, данная строка не симметрична».

instagram viewer

Пример 3: Пусть str = "madma".

1-я половина = «ма» и 2-я половина = «ма». Обе половинки струны одинаковые.

Таким образом, вывод будет «Да, данная строка симметрична».

Алгоритм определения того, является ли данная строка симметричной или нет

Вы можете определить, является ли данная строка симметричной или нет, следуя приведенному ниже подходу:

  1. Найдите длину строки.
  2. Найдите средний индекс строки.
    • Если длина строки четная, midIndex = длина / 2.
    • Если длина строки нечетная, midIndex = (длина / 2) + 1. В этом случае средний символ строки игнорируется для сравнения.
  3. Инициализировать две переменные-указатели указатель1 и указатель2. указатель1 сохранит индекс первого символа (0) строки и указатель2 сохранит индекс среднего символа (midIndex) строки.
  4. Теперь сравните соответствующие символы обеих половин строки, используя пока петля. Запустить пока петля, пока указатель1.
  5. Сравните соответствующие символы по индексам указатель1 и указатель2.
  6. Если какой-либо соответствующий символ окажется несходным, верните ложный. И если не найдено соответствующих символов, отличающихся друг от друга, верните истинный.
  7. Также не забудьте увеличить значение указатель1 и указатель2 в каждой итерации.

Программа на C ++ для определения, является ли данная строка симметричной или нет

Ниже приведена программа на C ++, которая определяет, является ли данная строка симметричной или нет:

// Программа на C ++ для проверки симметричности строки
#включают
используя пространство имен std;
// Функция для проверки симметричности строки
bool isSymmetrical (строка str)
{
int midIndex;
длина int = str.length ();
// Если длина строки четная
если (длина% 2 == 0)
{
midIndex = длина / 2;
}
// Если длина строки нечетная
еще
{
midIndex = длина / 2 + 1;
}
int указатель1 = 0;
int pointer2 = midIndex;
в то время как (указатель1{
если (стр [указатель1] == стр [указатель2])
{
указатель1 + = 1;
указатель2 + = 1;
}
еще
{
вернуть ложь;
}
}
вернуть истину;
}
// Код драйвера
int main ()
{
// Тестовый пример: 1
строка str1 = "abab";
cout << "Строка 1:" << str1 << endl;
если (isSymmetrical (str1))
{
cout << "Да, данная строка симметрична" << endl;
}
еще
{
cout << "Нет, данная строка не симметрична" << endl;
}
// Тестовый пример: 2
строка str2 = "мадам";
cout << "Строка 2:" << str2 << endl;
если (isSymmetrical (str2))
{
cout << "Да, данная строка симметрична" << endl;
}
еще
{
cout << "Нет, данная строка не симметрична" << endl;
}
// Тестовый пример: 3
строка str3 = "madma";
cout << "Строка 3:" << str3 << endl;
если (isSymmetrical (str3))
{
cout << "Да, данная строка симметрична" << endl;
}
еще
{
cout << "Нет, данная строка не симметрична" << endl;
}
// Тестовый пример: 4
строка str4 = "гражданский";
cout << "Строка 4:" << str4 << endl;
если (isSymmetrical (str4))
{
cout << "Да, данная строка симметрична" << endl;
}
еще
{
cout << "Нет, данная строка не симметрична" << endl;
}
// Тестовый пример: 5
строка str5 = "хохо";
cout << "Строка 5:" << str5 << endl;
если (isSymmetrical (str5))
{
cout << "Да, данная строка симметрична" << endl;
}
еще
{
cout << "Нет, данная строка не симметрична" << endl;
}
возврат 0;
}

Выход:

Строка 1: abab
Да, данная струна симметрична
Строка 2: мадам
Нет, данная струна не симметрична
Строка 3: мадма
Да, данная струна симметрична
Строка 4: гражданский
Нет, данная струна не симметрична
Строка 5: хохо
Да, данная струна симметрична

Связанный: Как перевернуть строку в C ++, Python и JavaScript

Программа Python для определения, является ли данная строка симметричной или нет

Ниже приведена программа Python для определения, является ли данная строка симметричной или нет:

# Программа на Python для проверки симметричности строки
# Функция проверки симметричности строки
def isSymmetrical (str):
midIndex = 0
длина = len (str)
если длина% 2 == 0:
midIndex = длина // 2
еще:
midIndex = длина // 2 + 1
указатель1 = 0
указатель2 = midIndex
пока указатель1if (str [pointer1] == str [pointer2]):
указатель1 + = 1
указатель2 + = 1
еще:
вернуть ложь
вернуть True
# Тестовый пример: 1
str1 = "abab"
print ("Строка 1:", str1)
если (isSymmetrical (str1)):
print ("Да, данная строка симметрична")
еще:
print ("Нет, данная строка не симметрична")
# Тестовый пример: 2
str2 = "мадам"
print ("Строка 2:", str2)
если (isSymmetrical (str2)):
print ("Да, данная строка симметрична")
еще:
print ("Нет, данная строка не симметрична")
# Тестовый пример: 3
str3 = "мадма"
print ("Строка 3:", str3)
если (isSymmetrical (str3)):
print ("Да, данная строка симметрична")
еще:
print ("Нет, данная строка не симметрична")
# Тестовый пример: 4
str4 = "гражданский"
print ("Строка 4:", str4)
если (isSymmetrical (str4)):
print ("Да, данная строка симметрична")
еще:
print ("Нет, данная строка не симметрична")
# Тестовый пример: 5
str5 = "хохо"
print ("Строка 5:", str5)
если (isSymmetrical (str5)):
print ("Да, данная строка симметрична")
еще:
print ("Нет, данная строка не симметрична")

Выход:

Строка 1: abab
Да, данная струна симметрична
Строка 2: мадам
Нет, данная струна не симметрична
Строка 3: мадма
Да, данная струна симметрична
Строка 4: гражданский
Нет, данная струна не симметрична
Строка 5: хохо
Да, данная струна симметрична

Связанный: Изучение Python? Вот как манипулировать строками

Программа на JavaScript для определения, является ли данная строка симметричной или нет

Ниже приведена программа на JavaScript, чтобы определить, является ли данная строка симметричной или нет:

// Программа на JavaScript для проверки симметричности строки
// Функция для проверки симметричности строки
function isSymmetrical (str) {
var midIndex;
var length = str.length;
// Если длина строки четная
если (длина% 2 == 0) {
midIndex = Math.floor (длина / 2);
}
// Если длина строки нечетная
еще {
midIndex = Math.floor (длина / 2) + 1;
}
var pointer1 = 0;
var pointer2 = midIndex;
в то время как (указатель1if (str [pointer1] == str [pointer2]) {
указатель1 + = 1;
указатель2 + = 1;
} еще {
вернуть ложь;
}
}
вернуть истину;
}
// Тестовый пример: 1
var str1 = "abab";
document.write ("Строка 1:" + str1 + "
");
if (isSymmetrical (str1)) {
document.write ("Да, данная строка симметрична" + "
");
} еще {
document.write ("Нет, данная строка не симметрична" + "
");
}
// Тестовый пример: 2
var str2 = "мадам";
document.write ("Строка 2:" + str2 + "
");
if (isSymmetrical (str2)) {
document.write ("Да, данная строка симметрична" + "
");
} еще {
document.write ("Нет, данная строка не симметрична" + "
");
}
// Тестовый пример: 3
вар str3 = "мадма";
document.write ("Строка 3:" + str3 + "
");
if (isSymmetrical (str3)) {
document.write ("Да, данная строка симметрична" + "
");
} еще {
document.write ("Нет, данная строка не симметрична" + "
");
}
// Тестовый пример: 4
var str4 = "гражданский";
document.write ("Строка 4:" + str4 + "
");
if (isSymmetrical (str4)) {
document.write ("Да, данная строка симметрична" + "
");
} еще {
document.write ("Нет, данная строка не симметрична" + "
");
}
// Тестовый пример: 5
вар str5 = "хохо";
document.write ("Строка 5:" + str5 + "
");
if (isSymmetrical (str5)) {
document.write ("Да, данная строка симметрична" + "
");
} еще {
document.write ("Нет, данная строка не симметрична" + "
");
}

Выход:

Строка 1: abab
Да, данная струна симметрична
Строка 2: мадам
Нет, данная струна не симметрична
Строка 3: мадма
Да, данная струна симметрична
Строка 4: гражданский
Нет, данная струна не симметрична
Строка 5: хохо
Да, данная струна симметрична

Связанный: Как найти наиболее часто встречающийся символ в строке

Решать задачи на основе строк

Строки - одна из самых важных тем для собеседований по программированию. Вы должны решить некоторые из известных проблем программирования на основе строк, например, проверить, является ли строка палиндромом, проверить если две строки являются анаграммами друг друга, найти наиболее часто встречающийся символ в строке, перевернуть строку, и т.п. если вы хотите быть полностью подготовленными.

ДелитьсяТвитнутьЭлектронное письмо
Как проверить, является ли строка палиндромом

Ваша строка - палиндром? Используете ли вы Python, C ++ или JavaScript, используйте один из этих алгоритмов, чтобы узнать.

Читать далее

Похожие темы
  • Программирование
  • JavaScript
  • Python
  • Учебники по кодированию
  • Программирование на C
Об авторе
Юврадж Чандра (Опубликовано 50 статей)

Юврадж - студент бакалавриата по информатике в Университете Дели, Индия. Он увлечен веб-разработкой Full Stack. Когда он не пишет, он исследует глубину различных технологий.

Ещё от Yuvraj Chandra

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!

Нажмите здесь, чтобы подписаться