|
Труд вопреки насмешкам
|
||||||
Как быть, если образуется длинная максимально вложенная строка с рекурсивным вызовом?14.11.2025, 16:48. Показов 2412. Ответов 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
|
||||||||||||
|
152 / 136 / 29
Регистрация: 02.07.2013
Сообщений: 996
|
||
| 02.12.2025, 15:04 | ||
|
Не по теме: Замечу что еще можно самостоятельно какой-то аллокатор написать и жить в рамках заранее выделенной памяти и костылить работу над строками каким-то необычным способом, но тут (имхо) шарп будет скорее не помощником а помехой
1
|
||
| 02.12.2025, 15:04 | |
|
Сколько может быть вложенных скобок в if()
Рекурсивный запрос: узнать ID всех вложенных level
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|