@zhuravlev125

Как перевернуть строку за пол прохода цикла?

Подскажите, Как за пол прохода цикла перевернуть строку, без использования встроенных функций, str.split('').reverse().join('') - не подходит, нужно "Руками". Я понимаю как перевернуть за полный проход но это не то что нужно.
for(let i=(string.length-1); i>=0; i--){
            str2 += string[i];
        }
  • Вопрос задан
  • 1380 просмотров
Решения вопроса 2
@kulaeff
Front-end developer
Существует около десятка способов перевернуть строку, один из которых - рекурсия.

var str = 'chupacabra';

function reverse(str) {
  if (str.length === 0) return '';

  var
    s1 = str[0],
    s = str.slice(1, str.length - 1),
    s2 = str[str.length - 1]
    
  return s2 + reverse(s) + s1
}

console.log(reverse(str))


В данном примере строка переворачивается за 5 проходов

https://jsfiddle.net/zxe296y9/1/
Ответ написан
@Mercury13
Программист на «си с крестами» и не только
Первую букву меняем с последней, вторую с предпоследней, и так далее.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
EreminD
@EreminD
Кое-что умею
На вскидку, так
for(let i=(string.length-1); i>=((string.length-1) / 2); i--){
   let a = string[i]
   let b = string[string.length-1]
   let c = a
   a = b
   b = c
}

Т.е. за один оборот, меняем местами крайние элементы
Ответ написан
Комментировать
Fzero0
@Fzero0
Вечный студент
function revStr(str){
	return (str === '')?'':revStr(str.substr(1)) + str[0];
}
console.log(revStr('pepsi'));
//-------
var str = 'abcdef';
alert('\u202E'+str);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
25 апр. 2024, в 11:49
25000 руб./за проект
25 апр. 2024, в 11:37
40000 руб./за проект