Информация об изменениях

Сообщение Re[8]: Зачем просят перевернуть строку на интервью? от 12.10.2018 9:57

Изменено 12.10.2018 10:06 AleksandrN

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

Тё>Здравствуйте, 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++;
    }
}
Re[8]: Зачем просят перевернуть строку на интервью?
Здравствуйте, Тёмчик, Вы писали:

Тё>Здравствуйте, 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++;
    }
}