Re[8]: Зачем просят перевернуть строку на интервью?
От: AleksandrN Россия  
Дата: 12.10.18 09:57
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>Здравствуйте, AleksandrN, Вы писали:


Тё>Там нечего оптимизировать- всё правильно сделано. Ну разве про swap без временной переменной и вообще без индексов.


Иногда встречал собеседующих, которые любят позанудствовать. В этом случае можно докопаться до двукратного вычисления n-1-i, хотя современный компилятор это, наверняка, хорошо оптимизирует.

А если делать без индексов и перестановку без временных элементов
void reverse( char *s )
{
    if ( !s )
        return;

    char *e = s + strlen( s ) - 1;
    while ( s < e )
    {
        *e ^= *s;
        *s ^= *e;
        *e-- ^= *s++;
    }
}
Отредактировано 12.10.2018 10:06 AleksandrN . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.