В этой статье блога мы углубимся в концепцию зеркальной обратной программы и рассмотрим различные методы ее реализации на языке программирования C++. Зеркальное обратное число или строка получается путем изменения порядка его элементов.
Содержание:
- Метод 1: использование итерации
- Метод 2: использование рекурсии
- Метод 3: использование двух указателей
- Метод 4. Использование функцииverse()
- Метод 5. Использование структуры данных стека
Метод 1: использование итерации:
#include <iostream>
#include <string>
std::string mirrorInverseIterative(const std::string& input) {
std::string result;
for (int i = input.length() - 1; i >= 0; i--) {
result += input[i];
}
return result;
}
Метод 2: использование рекурсии:
#include <iostream>
#include <string>
std::string mirrorInverseRecursive(const std::string& input) {
if (input.length() <= 1)
return input;
return input[input.length() - 1] + mirrorInverseRecursive(input.substr(0, input.length() - 1));
}
Метод 3. Использование двух указателей:
#include <iostream>
#include <string>
#include <algorithm>
std::string mirrorInverseTwoPointers(const std::string& input) {
std::string result = input;
int left = 0;
int right = input.length() - 1;
while (left < right) {
std::swap(result[left], result[right]);
left++;
right--;
}
return result;
}
Метод 4. Использование функцииverse():
#include <iostream>
#include <string>
#include <algorithm>
std::string mirrorInverseUsingReverse(const std::string& input) {
std::string result = input;
std::reverse(result.begin(), result.end());
return result;
}
Метод 5. Использование структуры данных стека:
#include <iostream>
#include <stack>
#include <string>
std::string mirrorInverseUsingStack(const std::string& input) {
std::stack<char> st;
for (char c : input) {
st.push(c);
}
std::string result;
while (!st.empty()) {
result += st.top();
st.pop();
}
return result;
}
В этой статье мы рассмотрели несколько методов реализации зеркально-инверсной программы на C++. Мы рассмотрели итеративный, рекурсивный, двухуказательный, обратный() и подходы на основе стека. Каждый метод предоставляет свой способ достижения зеркальной инверсии заданного входного сигнала. В зависимости от требований и ограничений вашего конкретного варианта использования вы можете выбрать наиболее подходящий метод для реализации. Поняв эти методы, вы теперь имеете прочную основу для создания зеркально-обратной функции в своих программах на C++.