|
Труд вопреки насмешкам
|
||||||
Как быть, если образуется длинная максимально вложенная строка с рекурсивным вызовом?14.11.2025, 16:48. Показов 2198. Ответов 33
Метки нет (Все метки)
Например:
0
|
||||||
| 14.11.2025, 16:48 | |
|
Ответы с готовыми решениями:
33
Получить новое число, которое образуется путем исключения средней цифры исходного числа
С помощью рекурсивной функции выбирать подстроку, максимально вложенную в другие подстроки |
|
Труд вопреки насмешкам
|
|
| 23.11.2025, 12:54 [ТС] | |
|
0
|
|
|
Труд вопреки насмешкам
|
||
| 23.11.2025, 13:04 [ТС] | ||
|
0
|
||
|
Модератор
|
|||
| 23.11.2025, 13:17 | |||
|
Основные. Массивы в существующей, актуальной компьютерной архитектуре являются по сути неизменяемыми. Почти все коллекции (в том числе и строки) это оболочки над массивами, в которых просто инкапсулировано пересоздание массивов. Оно там есть, но пользователь коллекции просто не видит за оболочкой как и когда это происходит. Второе, строки (string) это не просто коллекция символов (char). В строках очень много логики связанной с тем что такой набор это не просто последовательность, а часть ТЕКСТА. Как минимум при работе с текстом надо учитывать особенности культуры в контексте которой этой текст интерпретируется. Добавлено через 3 минуты Я понял бы ещё введение типа с названием дефолтного типа, который используется редко и/или в самой .Net имеет несколько реализаций. Но для основных типов (String, Int32, Double, Boolean и др.) я бы очень не советовал так делать. Одно это уже будет отталкивать потенциальных пользователей от использования вашего пакета (платформы). Добавлено через 2 минуты Сам по себе аргумент Visual Studio при его использовании подсказывает не существенный.Во первых, это не единственная IDE для работы с C#. Во вторых, это настраиваемые правила, которые могут быть изменены пользователем VS.
0
|
|||
|
Труд вопреки насмешкам
|
|||
| 23.11.2025, 13:19 [ТС] | |||
|
0
|
|||
|
Модератор
|
||||
| 23.11.2025, 13:29 | ||||
|
Где-то же должна храниться коллекция исходных данных (символов) на что будут указывать эти указатели. Сами указатели тоже где-то должны храниться. Такое вполне возможно, но такая реализация и имеет огромное количество минусов. Как-то ещё допустимых для небольших по размеру структур, но текстовые строки это явно не то что следует хранить в стеке. Добавлено через 1 минуту Даже сортировки нормальной, кроме английского, у вас не будет?
0
|
||||
|
Труд вопреки насмешкам
|
||||
| 23.11.2025, 13:31 [ТС] | ||||
FreeHGlobal().Добавлено через 1 минуту
0
|
||||
|
Модератор
|
|||
| 23.11.2025, 13:50 | |||
|
В существующей компьютерной архитектуре, это просто сигнал для ОС, которая в будущем , возможно сдвинет память всех процессов. Соответсвенно, все фрагменты освобожденной памяти из всех процесов сместятся в один пул, который и будет присоединён к пулу свободной памяти для распределения по другим запросам. Одной из задачей GС и является оптимизация всего этого. И как я вам писал ранее, GC делает это очень эффективно. По сути, вы не делаете чего-то особенного в сравнении с T[] (в частностb char[]). Просто делаете это с огромными трудностями, массой дополнительного кода, возможными ошибками и менее эффективно.Свойство System.Globalization.CultureInfo.InvariantCulture Если коротко, то на практике InvariantCulture - это "en-US" культура.Добавлено через 3 минуты То есть "международная культура" для американцев (а именно они разработчики этих стандартов внедрённых в Windows) - это их американская культура.
0
|
|||
|
Труд вопреки насмешкам
|
||
| 23.11.2025, 14:07 [ТС] | ||
|
Добавлено через 10 минут Элд Хасп, и еще, без указателей разве возможно получить диапазон ( GetRange()) без пересоздания? Можно AsSpan(), но Span - специфическая структура, LINQ-подобные методы с ней не работают, либо нужно делать отдельные копии, кроме того, AsSpan() бессмысленен для структур в стиле связного списка или дерева. А на указательной арифметике это делается простым указанием начала и длины, разумеется, с проверкой, не случится ли выход за границу. А на массивах как?
0
|
||
|
Модератор
|
|||
| 23.11.2025, 14:16 | |||
|
Память нужно освобождать, иначе как ОС узнает, что потом в будущем следует это место дефраментировать. Но не следует ожидать, что это будет происходить мгновенно. Как я вам ранее объяснял, такая дефрагментация это очень затратная операция. Она может затрагивать множество действующих процессов. Поэтому делать её "по каждому чиху" ОС точно не будет. Возможно только в каких-то специализированных микроконтроллерах, в которых вопрос оптимизации памяти приоритетнее всех остальных. Но очень сомневаюсь, что на таких системах будет использоваться Шарп. В Шарпе же все это берёт на себя GC. Заменять его чем-то кастомным и надеяться что это будет работать эффективнее... скажем так - наивно. Добавлено через 2 минуты В самом простом случае. Есть исходная строка текста. Передавайте начальный индекс и длину нужного фрагмента. Для синтаксического анализа этого "выше головы" хватит.
0
|
|||
|
Труд вопреки насмешкам
|
|
| 23.11.2025, 14:18 [ТС] | |
|
0
|
|
|
Модератор
|
||||||||||||
| 23.11.2025, 16:37 | ||||||||||||
1
|
||||||||||||
|
151 / 135 / 29
Регистрация: 02.07.2013
Сообщений: 986
|
||
| 02.12.2025, 15:04 | ||
|
Не по теме: Замечу что еще можно самостоятельно какой-то аллокатор написать и жить в рамках заранее выделенной памяти и костылить работу над строками каким-то необычным способом, но тут (имхо) шарп будет скорее не помощником а помехой
1
|
||
| 02.12.2025, 15:04 | |
|
Сколько может быть вложенных скобок в if()
Рекурсивный запрос: узнать ID всех вложенных level
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Программа для com-порта
Uhbif79 05.06.2026
Всем привет, давно хотел изучить Qt, начинал, бросал, потом снова начинал. И сейчас вот смог написать свою первую программу.
До этого имел опыт программирования микроконтроллеров, писал прошивки на. . .
|
Транскрипция 55-минутного видео через Whisper: WhisperDesktop облажался, спас Google Colab[
anaschu 01.06.2026
Понадобилось получить текст из свежезагруженного видео на YouTube. Казалось бы, задача на пять минут. Заняла полтора часа. Делюсь опытом — может кому пригодится последовательность решений.
. . .
|
21 мат мед. Планы на развитие модели здравоСохранения
anaschu 01.06.2026
AnyLogic: план развития симуляционной модели рабочего коллектива — динамический абсентеизм, реальные данные, три сценария сравнения
Продолжаю серию постов о дискретно-событийной модели рабочего. . .
|
20. Мат мед. Абсентеизм как отдельный тип простоя
anaschu 29.05.2026
Апдейт модели: исправленные баги, абсентеизм и новые механизмы
Продолжаю развивать ранее описанную модель рабочего коллектива на AnyLogic. За последние несколько дней был проведён серьёзный. . .
|
|
19. здоровье, усталость и психотип работника влияют на производительность предприятия, и наоборот, производительность на здоровье, усталось и психотип
anaschu 28.05.2026
Дискретно-событийная модель рабочего коллектива на AnyLogic: здоровье, выгорание, психотипы и микростимуляция
Привет, коллеги. Хочу поделиться итогами нескольких недель работы над симуляционной. . .
|
"Прокси" для последовательного порта
Eddy_Em 28.05.2026
Эту штуку написал я достаточно давно. Но сейчас вот понадобилось настроить датчик грозы, но при этом не отключать его от "метеодемона". Соответственно, надо запустить этот "прокси": метеодемон будет. . .
|
Рефакторинг программы уравнивания.
Massaraksh7 26.05.2026
Пример по предыдущей записи в блоге. Но, надо заметить, что, во-первых, там оптимизация не только математики, но и работы с базой данных, и с графами, а во-вторых, это ещё не всё.
|
Использование TThread в Lazarus для математических вычислений.
Massaraksh7 25.05.2026
Производя рефакторинг своих программ на предмет ускорения их работы, обратил внимание на такой аспект, как сокращение времени матвычислений. Дело в том, что приходится работать с большими матрицами. . .
|