codingBlonde Ответов: 3

Сравните, если два массива имеют одинаковые символы в обратном порядке. (С++)


int isReverse (char array_a[], char array_b[], int size) {


}

//Я знаю, как сделать часть сравнения, но я застрял на части обратного порядка
// Я не знаю, как проверить массивы символов, если они имеют один и тот же символ в обратном порядке

Что я уже пробовал:

int isReverse (char array_a[], char array_b[], int size) {

for (int i=0; i < size; i++)
{
если (array_a[я] != array_b[я])
возвращать false;
еще
вернуть true;
}

3 Ответов

Рейтинг:
2

OriginalGriff

Подумайте об этом: это не сложно.
Начните с проверки длины: если они разные, они не совпадают.
Это нормально, сравните последний элемент одного массива с первым элементом другого. Это очень просто x[0] против y[0 + len - 1]
Если они совпадают, сравните предпоследний элемент одного массива со вторым элементом другого. Это очень просто x[1] против y[1 + len - 1]
И так далее, пока вы не сделаете их все.

И немного размышлений покажет вам, как это сделать в цикле ...


CPallini

Мой 5.
Учитывая сигнатуру функции, ОП не может проверить длину массива.

OriginalGriff

Учитывая, что они являются массивами символов, скорее всего, они являются строками с нулевым завершением. Если нет, то он должен предоставить длину(ы), или это не может быть сделано!

CPallini

Эй, чувак, ты не можешь кодировать "шансы".:- D

OriginalGriff

Половина QA кодирует на "догадках", поэтому мне разрешено кодировать на "шансах" :смех:

Рейтинг:
19

Patrice T

Цитата:
Я знаю, как сделать часть сравнения, но я застрял на части обратного порядка
Я не знаю, как проверить массивы символов, если они имеют один и тот же символ в обратном порядке

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

Мы не делаем вашу домашнюю работу.
Домашнее задание не предназначено для проверки ваших навыков просить других людей сделать вашу работу, оно предназначено для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание курсов, которые вы прошли, а также проблем, которые вы испытываете при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по исправлению положения.
Любая ваша неудача поможет вам узнать, что работает, а что нет, это называется "методом проб и ошибок".
Так что попробуйте, перечитайте свои уроки и приступайте к работе. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.

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


CPallini

Мой 5.

Patrice T

Спасибо

Рейтинг:
0

KarstenK

недостающие советы:
а) используйте дополнительный нисходящий счетчик, который начинается с последнего элемента
б) одно различие означает, что результат является ложным, НО правда только когда все сделано
c) напишите некоторые тестовые данные для вызова вашей функции


CPallini

Мой 5.