Лучшие практики Reverse (обращения) строки в JavaScript, C ++ и Python
Программирование и разработка
Обращение строки — один из наиболее часто задаваемых вопросов для программистов. Вы даже можете ожидать увидеть это во время собеседований по кодированию. на собеседовании вы можете ожидать, что знаете все способы перевернуть строку, за исключением встроенной функции реверса.
Есть десятки способов перевернуть строку, так какие из них лучше? Какие есть лучшие практики для переворачивания струн? Сегодня мы погрузимся в эти вопросы и узнаем, как перевернуть строку в трех популярных языках программирования: C ++, Javascript и Python.
Что такое переворот строки?
В программировании строка — это последовательность символов. Это один из основных типов данных, который мы используем для выражения текста, а не чисел. Переворачивание строки означает полное изменение порядка символов. Другими словами, мы заставляем строку считываться в обратном направлении.
Переворачивание строки имеет несколько применений для разработчиков, хотя это не так часто встречается в реальных сценариях. Иногда проблемы, связанные с регулярными выражениями, легче использовать или решать, когда входная строка перевернута. В других случаях обращение строки позволяет нам искать и сортировать по окончанию строки.
Чаще всего переворот строки используется в собеседовании по кодированию. Вы можете ожидать, что интервьюер расспросит вас об переворачивании строки, не используя встроенную функцию.
В задачах кодирования вы можете увидеть такой вопрос:
- Переверните строку.
- Возможно, вам потребуется превратить строку в массив.
- Ваш результат должен быть строкой.
Как перевернуть струну?
Есть много способов перевернуть строку на любом языке программирования. Выбранный вами метод зависит от требований программы, которую вы пишете. В некоторых языках есть встроенные функции или методы для переворота строк, но вам не следует полагаться на них. Есть десятки подходов, и некоторые из них более эффективны, чем другие:
- Метод нарезки
- Петлевой метод
- Метод соединения
- Обратный метод
- Создание новой строки
Мы подробно рассмотрим все эти методы и рассмотрим лучшие практики для переворота строк. Давайте начнем!
Reverse строку в JavaScript
Есть три шага, участвующий в изменении строки в JavaScript:.split(),.reverse(),.join(). Вы можете запомнить это по следующей формуле:
Давайте возьмем строку «Hello!»и перевернем ее по этой формуле. Вот визуальное представление процесса.
Split
В JavaScript этот split()метод разбивает строку на массив подстрок и возвращает новый массив. Это не меняет исходный массив.
Different Methods to Reverse a String in C++
The reversing of a string is nothing but simply substituting the last element of a string to the 1st position of the string.
Different Methods to Reverse a String in C++ are:
- Making our own reverse function
- Using ‘inbuilt’ reverse function
- Using Constructor
- Using a temp file
1. Making a Custom Reverse Function For Swapping Characters
- Using a first to last approach ‘for’loop
Complexity Analysis:
Time Complexity: O(N)
Auxiliary Space: O(1)
- Using a first to last Approach with while loop
Complexity Analysis:
Time Complexity: O(N)
Auxiliary Space: O(1)
- Using a Last to First Approach ‘for‘ Loop
Complexity Analysis:
Time Complexity: O(N)
Auxiliary Space: O(1)
- Using a Last to First Approach ‘while’ Loop
Complexity Analysis:
Time Complexity: O(N)
Auxiliary Space: O(1)
1. Using recursion Function with two pointer approach
Recursion functions are used for iterating to different indexes of the string.
Complexity Analysis:
Time Complexity: O(N)
Auxiliary Space: O(N)
2. Using one pointer approach in recursion
Below is the implementation of the code:
Complexity Analysis:
Time Complexity: O(N)
Auxiliary Space: O(N)
3. Using the inbuilt “reverse” Function
There is a direct function in the “algorithm” header file for doing reverse that saves our time when programming.
Complexity Analysis:
Time Complexity: O(N)
Auxiliary Space: O(1)
4. Reverse a String Using the Constructor
Passing reverse iterators to the constructor returns us a reversed string.
Complexity Analysis:
Time Complexity: O(N)
Auxiliary Space: O(1)
5. Using a Temporary String
Complexity Analysis:
Time Complexity: O(N)
Auxiliary Space: O(1)
How could we get the reverse of a const string?
To get the reverse of a const string we have to first declare a ‘const string’ in a user-defined function following which we have declared then use the following algorithm for the calling of the desired objects.
Example:
Time Complexity: O(N)
Auxiliary Space: O(N)
Объясните код С++ реверс строки
Программа выводит текст в обратном порядке. Можете пожалуйста поподробнее объяснить как она работает.
Что делает функция reverse:
Начнем с начала
Если полученная ею строка состоит только из терминального символа — просто выходит. Мы добрались до конца строки, делать ничего не надо. Это условие остановки рекурсии
Вызывает саму себя с новой строкой, из которой удален первый символ.
Здесь происходит вывод первого символа полученной строки.
Как все это, в итоге, работает.
Получив строку, функция вызывает саму себя с обрезанной строкой до тех пор, пока не получит строку, содержащую только терминальный символ. После этого происходит выход из последнего вызова. При этом попадаем в предпоследнюю вызванную копию функции. Она получила на вход строку из одного (последнего) начальной символа и терминального символа. Именно этот последний вызов она и выведет в поток, после чего вернет управление вызвавшей ее функции.
Та, в свою очередь, напечатает первый символ полученной ею строки, то есть предпоследний символ исходной строки, и вернет управление предыдущей функции. Так и будет происходить посимвольная печать и возврат до тех пор, пока не дойдет дело до первого экземпляра функции reverse, которая напечатает первый символ строки и закончит работу.
Еще раз повторюсь: это не полноценный реверс, так как реверсированная строка нигде не сохраняется, кроме как на экране. С ней невозможно дальше работать.
How to Reverse String in C?
In natural language processing & parsing, sometimes it is easier to search a string from the end to the beginning. A string reverse would be useful for debugging, or as an alternate way to write the loop.String reversal function reverses the entered string i.e if the user enters a string “reverse” as input then it will be changed to “esrever”. strrev() function reverses a given string in C language under the header file string.h.
Note : A string which remains the same even after the reversal is called as palindrome string.
Syntax
The syntax of strrev() function is
Examples – Reverse String in C Programming
Following are the C programming examples we shall go through to reverse a string
Example 1 – Reverse String using strrev()
In this example, we will use strrev() function to reverse a given string.
C Program
Example 2 – Reverse String In-place
Reverse a string in place means swapping characters at the beginning and the end of the string and then move towards the middle of the string. It doesn’t need a separate buffer to hold the reversed string.
In the following example, we will read a string from user and reverse this string in-place.
C Program
Example 3 – Reverse String using Recursion
Recursive function takes string as an input and reverse the string until it encounters ‘\0’ by calling the reverse function. Though recursive function looks easier, it won’t give better performance than strrev() function because for every recursive call stack will be created.overhead of creating stack whenever a recursive function called will effects its efficiency.
In the following example, we will use this recursion technique to reverse a string read from the console.
C Program
Output
Example 4 – Reverse String using Pointers
Another way of accessing a contiguous block of memory, instead of with an array, is with a pointer. Since we are talking about strings, which are made up of characters, we’ll be using pointers to characters i.e char *s .
However, pointers only hold an address, they cannot hold all the characters in a character array. This means that when we use a char * to keep track of a string, the character array containing the string must already exist. C program to reverse a string using pointers is given below.
In the following example, we will reverse the given string using String Pointer.
C Program
Conclusion
In this C Tutorial – Reverse String in C Programming, we have learnt to use strrev() function to reverse a string. Also we have gone through other methods to reverse a string like, in-place reversing, reversing using pointers, reversing using recursion with C program examples.