Рубрики
Без рубрики

Три способа изменить строку в JavaScript

Эта статья основана на бесплатном кодовом лагере Базовый алгоритм сценариев «обратного строка» Реверсирующая строка является одним из наиболее часто задаваемых вопросов JavaScript в техническом раунде собеседования. Интервьюеры могут попросить вас написать разные способы обратить вспять строку, или они могут попросить вас

Автор оригинала: Sonya Moisset.

Эта статья основана на бесплатном кодовом лагере основных алгоритма сценариев » Обратить вспять строку “

Реверсируя строку Один из самых часто задаваемых вопросов JavaScript в техническом раунде собеседования. Интервьюеры могут попросить вас написать различные способы обратить вспять строку, или они могут попросить вас обратить вспять строку без использования встроенных методов, или они могут даже попросить вас обратить вспять строку с помощью рекурсии.

Есть потенциально десятки разных способов сделать это, исключая встроенный Обратный Функция, так как JavaScript не имеет одного.

Ниже приведены ли мои три самых интересных способа решить проблему изменения строки в JavaScript.

Алгоритм Задача

function reverseString(str) {
    return str;
}
reverseString("hello");

Предоставил тестовые случаи

  • Реверсировка («Привет») должен стать “olleh”
  • перевернув («привет») должен стать “ydwoh”
  • Реверсинг («Привет от Земли») должен вернуть “htrae morf sgniteerg”

1. Переверните строку со встроенным функциям

Для этого решения мы будем использовать три метода: метод string.prototyee.split (), метод Array.prototype.Reverse () и метод Array.Prototye.join ().

  • Метод разделения () расщепляет элемент строки в массив строки, отделяя струну на субъекты.
  • Метод обратного () переворачивает массив на месте. Первый элемент массива становится последним, и последний становится первым.
  • Метод join () объединяет все элементы массива в строку.
function reverseString(str) {
    // Step 1. Use the split() method to return a new array
    var splitString = str.split(""); // var splitString = "hello".split("");
    // ["h", "e", "l", "l", "o"]
 
    // Step 2. Use the reverse() method to reverse the new created array
    var reverseArray = splitString.reverse(); // var reverseArray = ["h", "e", "l", "l", "o"].reverse();
    // ["o", "l", "l", "e", "h"]
 
    // Step 3. Use the join() method to join all elements of the array into a string
    var joinArray = reverseArray.join(""); // var joinArray = ["o", "l", "l", "e", "h"].join("");
    // "olleh"
    
    //Step 4. Return the reversed string
    return joinArray; // "olleh"
}
 
reverseString("hello");

Цепочка три метода вместе:

function reverseString(str) {
    return str.split("").reverse().join("");
}
reverseString("hello");

2. Переверните строку с уменьшением цикла

function reverseString(str) {
    // Step 1. Create an empty string that will host the new created string
    var newString = "";
 
    // Step 2. Create the FOR loop
    /* The starting point of the loop will be (str.length - 1) which corresponds to the 
       last character of the string, "o"
       As long as i is greater than or equals 0, the loop will go on
       We decrement i after each iteration */
    for (var i = str.length - 1; i >= 0; i--) { 
        newString += str[i]; // or newString = newString + str[i];
    }
    /* Here hello's length equals 5
        For each iteration: i = str.length - 1 and newString = newString + str[i]
        First iteration:    i = 5 - 1 = 4,         newString = "" + "o" = "o"
        Second iteration:   i = 4 - 1 = 3,         newString = "o" + "l" = "ol"
        Third iteration:    i = 3 - 1 = 2,         newString = "ol" + "l" = "oll"
        Fourth iteration:   i = 2 - 1 = 1,         newString = "oll" + "e" = "olle"
        Fifth iteration:    i = 1 - 1 = 0,         newString = "olle" + "h" = "olleh"
    End of the FOR Loop*/
 
    // Step 3. Return the reversed string
    return newString; // "olleh"
}
 
reverseString('hello');

Без комментариев:

function reverseString(str) {
    var newString = "";
    for (var i = str.length - 1; i >= 0; i--) {
        newString += str[i];
    }
    return newString;
}
reverseString('hello');

3. Переверните строку с рекурсией

Для этого решения мы будем использовать два метода: метод string.prototype.substr () и метод string.prototypee.Carat ().

  • Метод SUBSTR () возвращает символы в строке, начиная с указанного местоположения через указанное количество символов.
"hello".substr(1); // "ello"
  • Метод Charat () возвращает указанный символ из строки.
"hello".charAt(0); // "h"

Глубина рекурсии равна длине строки. Это решение не является самым лучшим и будет действительно медленным, если строка очень длинная, а размер стека имеет основную проблему.

function reverseString(str) {
  if (str === "") // This is the terminal case that will end the recursion
    return "";
  
  else
    return reverseString(str.substr(1)) + str.charAt(0);
/* 
First Part of the recursion method
You need to remember that you won't have just one call, you'll have several nested calls

Each call: str === "?"        	                  reverseString(str.subst(1))     + str.charAt(0)
1st call – reverseString("Hello")   will return   reverseString("ello")           + "h"
2nd call – reverseString("ello")    will return   reverseString("llo")            + "e"
3rd call – reverseString("llo")     will return   reverseString("lo")             + "l"
4th call – reverseString("lo")      will return   reverseString("o")              + "l"
5th call – reverseString("o")       will return   reverseString("")               + "o"

Second part of the recursion method
The method hits the if condition and the most highly nested call returns immediately

5th call will return reverseString("") + "o" = "o"
4th call will return reverseString("o") + "l" = "o" + "l"
3rd call will return reverseString("lo") + "l" = "o" + "l" + "l"
2nd call will return reverserString("llo") + "e" = "o" + "l" + "l" + "e"
1st call will return reverserString("ello") + "h" = "o" + "l" + "l" + "e" + "h" 
*/
}
reverseString("hello");

Без комментариев:

function reverseString(str) {
  if (str === "")
    return "";
  else
    return reverseString(str.substr(1)) + str.charAt(0);
}
reverseString("hello");

Условный (тройной) оператор:

function reverseString(str) {
  return (str === '') ? '' : reverseString(str.substr(1)) + str.charAt(0);
}
reverseString("hello");

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

Я надеюсь, что вы нашли это полезным. Это является частью моего «Как решить серию статей« Как решить фкКК-алгоритмы ».

Три способа повторить строку в JavaScript в этой статье, я объясню, как решить «Повторить строку» FreeCodeCamp. Это связано с …

Два способа подтвердить окончание строки в JavaScript в этой статье, я объясню, как решить «подтвердить« подтвердить концовку ».

Три способа активизировать число в артикул JavaScriptTishis основано на бесплатном кодовом лагере основных алгоритма сценариев «Factorialize ряд»

Два способа проверить палиндром в JavaScript Эта статья основана на бесплатном кодовом лагере основных алгоритма сценариев «Проверка на палиндромы».

Три способа найти самое длительное слово в строке в JavaScript Эта статья основана на бесплатном кодовом лагере основных алгоритма сценариев «Найти самое длинное слово в строке».

Три способа к названию.

Если у вас есть собственное решение или какие-либо предложения, поделитесь их ниже в комментариях.

Или вы можете следовать за мной на Средний , Twitter , Github и LinkedIn , сразу после нажатия зеленого сердца ниже 😉

# StaySurious, # KeepOnhacking & # MasteithiThappen!

Ресурсы