|
|
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
Задача: Перевернуть строку, не пользуясь дополнительным буфером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 11:44 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
Когда-то была функция strrev /string.h/. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 12:00 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
Интересуют ВАШИ варианты IMHO, Mon$te® ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 12:04 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 12:24 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
Честно говоря вариантик не очень красивый, ещё? IMHO, Mon$te® ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 12:26 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 13:00 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
а что значит сия конструкция s = s^s[l-i]; ? а указателями не лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 14:26 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
автора что значит сия конструкция s = s^s[l-i]; ? ^ означает побитное исключающее или. автора указателями не лучше? Не знаю, не думал на эту тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 14:35 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
XOR - круто придумано, тогда тем более лучше указателями, и получиться идеальный вариант :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 14:40 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. а так красивее? IMHO, Mon$te® ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 15:40 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. и в чем сложность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 15:55 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
а как вызывать? для строки Код: plaintext а такого условия достаточно? Код: plaintext IMHO, Mon$te® ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 16:01 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
for(char *start, *stop = str+strlen(str); start<stop; start++, stop--) std::swap(*start,*stop); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 17:14 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
Исправил for(char *start=str, *stop = str+strlen(str); start<stop; start++, stop--) std::swap(*start,*stop); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 17:17 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
Мне честно говоря было интерестно, какой вариант приходит сразу на ум: с указателями или []ми. напишите, плиз IMHO, Mon$te® ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 17:19 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
4d_monster а такого условия достаточно? First < Last поверь мне достаточно - указатели двигаются навстречу друг другу. Алгоритм работает стопудово для всех видов строк. ТОлько для дурацких сишных строк указатель last надо ставить не на НОЛЬ, а на последний символ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 18:00 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
Извиняюсь ошибся - попправлю сам себя. указатель ласт для сишных строк может стоять на НУЛЕ. Потому что у меня у Last префиксный декремент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 18:02 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
Насколько я понял вопрос, надо без дополнительной переменой типа tmp и без стандартных функций типа swap. Задача из этой же серии: Есть две переменные a и b типа int, поменять значения местами, без третьей переменной, без функций, испоьзуя только четыре арифметических операции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 18:41 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
A = A xor B B = A xor B A = A xor B такие задачи не имеют практического применения. Их кстати можно решить через сложение и вычитание. А что толку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 19:06 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
И потом кто тебе мешает вместо std::iter_swap написать такое Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. только опять же что толку. Если ты не объявляешь временные переменные, то это не значит что за тебя это не делает компилер: 1) передача параметров 2) разыменовывание нет я конечно понимаю, что типа сбор задачек для приема на работу или наоборот поиск ответов для задач которые задали при приеме на работу. Это да. Но мое ИМХО задание таких теоретических задач ничего не развивает кроме решения этих теоретических задач. Если уж принимаешь на работу, то задавай что-то из практики ради который ты будешь брать человека на работу. Если там с файлами или винапи будет работать - пусть напишет команду dir. Если это инженерные задачи связанные с математикой - ну дай задачку на численный метод. И т.д. и т.п. PS: извините за занудство 8-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 19:14 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
опечатка - std::iter_swap replace iter_xor_swap ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2005, 19:15 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
Извините, за некоторую неточность. Читал статью, увидел задачу, первая мысль про цикл, а как только прочитал, дальше, понял, что для скорости нужны указатели. Хотел узнать мысли про цикл, это нормально или плохо :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2005, 13:17 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
Мысли про цикл? какие? "плохо или хорошо" - что конкретно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2005, 15:34 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
dwl A = A xor B B = A xor B A = A xor B такие задачи не имеют практического применения. Их кстати можно решить через сложение и вычитание. А что толку? Почему не имеют? Постейший вопрос. Как заменить биты из одного регистра битами из другого? Ответ: Код: plaintext 1. 2. 3. 4. P.S. Не обижайтесь что говорю прописные истины, но кто-то может этого и не знать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 06:01 |
|
||
|
Перевернуть строку, не пользуясь дополнительным буфером?
|
|||
|---|---|---|---|
|
#18+
я имел ввиду обмен значениями двух перемнных. использовать для этого операции предназначенные для манипуляциями битами или булевскими величинами - красиво, но на практике - не все типы данных так можно ксорить. ладно не будем загонятся. В конце концов кто-то может вспомнить что подобный вопрос есть и на брайнбенч. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2005, 09:16 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33021968&tid=2033326]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
143ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
74ms |
get tp. blocked users: |
1ms |
| others: | 231ms |
| total: | 488ms |

| 0 / 0 |
