|
0 / 0 / 0
Регистрация: 23.09.2018
Сообщений: 11
|
||||||
В одномерном массиве найти количество повторяющихся последовательностей символов с длиной больше или равной двум11.11.2018, 23:55. Показов 8802. Ответов 60
Метки нет (Все метки)
Условие : В одномерном массиве символов найти количество повторяющихся последовательностей символов с длиной больше или равной двум. Например, в строке «abcdbabcba» ответ: «ab», «bc», «abc», «ba». Не использовать строковые функции.
Подскажите, пожалуйста, как можно это реализовать для последовательностей с длиной больше 2 символов, и как правильно подсчитать количество повторяющихся последовательностей? Прикрепляю набросок кода:
0
|
||||||
| 11.11.2018, 23:55 | |
|
Ответы с готовыми решениями:
60
В одномерном массиве символов найти количество повторяющихся последовательностей символов
|
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
||||||||||
| 13.11.2018, 07:00 | ||||||||||
|
diadiavova, зачем тогда опять же выделять slice, если и так понятно в контексте какого метода описание?
Только это мало что изменит. Ну по крайней мере для моего понимания спецификации. ![]() В общем интерфейсе и интерфейсе зависимого объекта, полиморфным агентом запросто может стать условие на треклятый this. Общий интерфейс => проверка на this => Array ? бла-бла : String ? бла-бла : throw new Error('unsupported object'); https://codepen.io/qwerty_wasd/pen/qQqzXz
Добавлено через 2 минуты Добавлено через 6 минут diadiavova, давайте заканчивать - Вы при своем, я при своем. Ну надоедает спорить ![]() Ничего хорошего он(спор) все-равно не даст - проверено. Не знаю как Вы, а я очень эмоциональный - у меня стул горит, мебель жалко
1
|
||||||||||
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 13.11.2018, 08:15 | |
|
Отвлекусь от вышеприведенного словоблудия.
В ответах товарищей klopp и diadiavova пока использовались строковые функции. Надеюсь, товарищи эти недостатки устранят в обновленных версиях проектов.
0
|
|
|
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
|
|
| 13.11.2018, 08:27 | |
|
0
|
|
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
||||||||||||||||||||||
| 13.11.2018, 08:47 | ||||||||||||||||||||||
|
Для себя оставлю здесь на память:
ad hoc-полиморфизм — это полиморфизм, основанный на различении типов. Для различных типов аргументов используется разный код функции, но с одинаковым именем.Один классический пример — это перегрузка (overloading) метода:
Другой пример ad hoc-полиморфизма — это переопределение (overriding) виртуального метода:
Это пример динамического ad hoc-полиморфизма. Его другое название - полиморфизм наследования. И вторая крупная форма полиморфизма - Параметрический полиморфизм - когда будет выполняться одна и та же функция вне зависимости от типов аргументов.Параметрический полиморфизм является истинной формой полиморфизма, делая язык более выразительным и существенно повышая коэффициент повторного использования кода. Традиционно ему противопоставляется Ad hoc полиморфизм (мнимая форма). Тривиальный пример для языков с наследованием (например, C#) — функция, работающая с объектом некоторого класса C, часто может без изменений работать с объектом порождённого от C класса (этот вид полиморфизма часто называют полиморфизм включения). Менее тривиальный пример — generic-методы, которые могут, в зависимости от generic-параметра, работать с разными типами объектов. Пример:
Упомянули Subtype полиморфизм — это когда есть методы в разных классах которые делают то же самое, им надо дать одинаковое имя и сделать чтобы эти классы реализовывали единый интерфейс или наследовали единый абстрактный класс с этим абстрактным методом.(Причем, насколько понимаю, здесь упор делается на соответствие интерфейсу, а не поиск того, является ли функция одной, или их несколько одноименных.) Добавлено через 3 минуты Наличие строковой функции:
0
|
||||||||||||||||||||||
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
|||||||
| 13.11.2018, 09:01 | |||||||
|
amr-now, здравствуй.
Ни разу не брался за С# всерьез, консольные приложения не в счет, но мне кажется этот язык ближе к Java, чем к крестам. Хоть он и имеет корни от обоих. Не накладывает ли это отпечаток на реализации интерфейсов, классов и т.д.? Насколько я знаю он не поддерживает множественное наследование.
0
|
|||||||
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 13.11.2018, 09:15 | |
|
По поводу множественного наследования:
сейчас в языках программирования пошла мода костылить множественное наследования трейтами (миксинами). Фактически они физически не внедряются в цепочку наследования класса. Компилятор просто костыльно знает, что в случае чего при обращении к определенному якобы нестатическому методу класса надо обратиться к методу миксина. Насколько понимаю, так реализовано в TypeScript, в интерфейсных методах по умолчанию в Java, и планируют включить интерфейсные методы по умолчанию в C#. Это те же самые миксины. Они костыльно прицепляются к классу и якобы видны из класса.
0
|
|
|
566 / 465 / 183
Регистрация: 14.10.2017
Сообщений: 1,259
|
||
| 13.11.2018, 09:21 | ||
str.length? или что? я не понял где там функцию вы увидели? это свойство, если че.
0
|
||
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 13.11.2018, 09:29 | |
|
klopp, в Javascript свойства делятся на две формы:
- свойства-значения. - свойства-функции. Насколько понимаю, str.length - типичный геттер, то есть явно строковая функция. Кстати, прикольный момент - если в свойство, которое не геттер и не сеттер, толкнуть функцию, то свойство становится методом. То есть формально тоже членом-функцией класса
0
|
|
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
|||||||||
| 13.11.2018, 09:36 | |||||||||
Вы наверное имели ввиду, что в библиотеках, собираемых компоновщиком, так реализовано. Не знал, что именно так дело обстоит в С# и Java. Добавлено через 3 минуты amr-now,
0
|
|||||||||
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
||||||||||||
| 13.11.2018, 11:05 | ||||||||||||
|
klopp, Qwerty_Wasd, да.
Именно в JavaScript str.length является свойством-значением.
Признаю, что я был не прав. Добавлено через 10 минут --- Хотя свойство-значение с запретом на запись по любому - геттер. Но в синтаксисе JS глубоко законспирированный геттер. Формально можно считать якобы не геттером ![]() ![]() ![]() Добавлено через 3 минуты ---- Хотя если среда выполнения просто всегда смотрит дескриптор, то отдельно выделенный геттер для свойства не нужен )) Среда выполнения лезет в свойства с общим на всех пре-геттером и пре-сеттером. Добавлено через 28 минут https://ru.wikipedia.org/wiki/... нформатика)
А потом спрашиваете, почему люди годами не могут разобраться в тонкостях видов полиморфизма...
1
|
||||||||||||
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
||
| 13.11.2018, 11:19 | ||
|
Не по теме:
0
|
||
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
|
| 13.11.2018, 11:43 | |
|
Qwerty_Wasd, ну как сказать "секта"?
ООП изобретали психически больные люди, обладающие различными комплексами неполноценности, методом проб и ошибок. Их трудно признать какой-то единой сплоченной сектой... Сейчас есть современная тема интереснее - война сторонников DDD (ООП-связывания данных) со сторонниками реляционного связывания таблиц.
0
|
|
| 13.11.2018, 12:01 | |
|
Не по теме: amr-now, а в чем у них претензии к друг другу? С чего вдруг ООБД vs РБД батлл то начался? Обе модели существуют довольно давно вроде.
0
|
|
|
6496 / 3907 / 2006
Регистрация: 14.06.2018
Сообщений: 6,781
|
||
| 13.11.2018, 12:22 | ||
|
----
По статье в Википедии расставлю точки над И. Из парадигм ООП: - ООП-наследование - это подвид параметрического полиморфизма - полиморфизм включения. - ООП-полиморфизм (полиморфизм наследования) - это подвид Ad hoc - динамический полиморфизм с помощью переопределения (override) методов. Ну и раз пошла такая пьянка, - ООП-инкапсуляция - это объединение данных и функций для работы с этими данными в нечто единое. И уже потом как опция - возможное сокрытие этих данных. Кстати при создании экземпляра как раз повторно используются одинаковые функции для работы с данными экземпляра. Добавлено через 34 секунды
0
|
||
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
|||||||
| 13.11.2018, 12:44 | |||||||
|
loreleysatellit, соблюдая условия Найдет все возможные комбинации символов из строки и выведет в объекте кол-во повторений для каждого - https://codepen.io/qwerty_wasd/pen/XyNOLq Ни одного метода String.prototype.
0
|
|||||||
|
|
||||||||||||
| 13.11.2018, 13:10 | ||||||||||||
|
[/QUOTE]
its this value - это нормальный английский? Ну ладно, не буду спорить, в конце концов, не так уж хорошо я его и знаю.
https://www.cyberforum.ru/post13054031.html Добавлено через 11 минут
0
|
||||||||||||
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
||
| 13.11.2018, 13:14 | ||
|
diadiavova, Ну вот ! Ты опять поджигаешь мне стул))
Про спор - последнее слово я оставил за тобой, дальше я не продолжу. ![]() Exec это метод RegExp.prototype и он не делегирован больше никому, Set конструктор Set.prototype. Вроде честно.
0
|
||
|
|
||
| 13.11.2018, 13:35 | ||
|
Добавлено через 7 минут Еще пару слов относительно реализаций, содержащих полную информацию обо всех кобинациях, содержащихся в строке. Когда я первоначально обдумывал код, я рассматривал подобный вариант, но потом подумал, что будет, если массив окажется достаточно длинным. Там ведь комбинаций будет "вагон и маленькая тележка", они засрут всю память, причем объем занимаемой памяти будет расти лавинообразно по мере увеличения длины исходного массива. В первой реализации я эту проблему решил путем сохранения только самых длинных из повторяющихся комбинаций. Кроме того, там я вроде как решил еще одну проблему производительности, а именно - сбросил обход заведомо пустых кобинаций. Там есть еще над чем поработать, но в общем это должно работать неплохо. Единственное место где я в том коде "подговнял" - это то место где я интерпретировал результаты. Там где-то в подсчетах ошибся, в уме выполнял, хотя надо было расписать все. В принципе можно доработать, если не поленюсь(что вряд ли), то сделаю.
0
|
||
|
2151 / 1496 / 651
Регистрация: 16.04.2016
Сообщений: 3,696
|
|||||||||||
| 13.11.2018, 14:09 | |||||||||||
|
diadiavova,
Доступа к исходникам,где бы я посмотрел как именно реализован тот или иной интерфейс JS, у меня действительно нет. А в доке крайне мало инфы. И написана она в стиле - каждый понимает так как хочет. Еще раз в этом убедился. При чем здесь полиморфизм и плюсы, понять не сложно - достаточно перечитать тему. Пример что я приводил,
![]() Это не сарказм. Я серьезно.
0
|
|||||||||||
|
супермизантроп
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,629
|
|
| 13.11.2018, 14:17 | |
|
увы, прошлогоднего своего файла с решением подобной задачи я пока не нашёл ни на одном из компов
но точно помню, что в нём использовался метод join () уважаемые спорщики-полиморфинисты, Qwerty_Wasd и diadiavova, объясните, пожалуйста, можно ли отнести этот метод к недопустимым в данной задаче "строковым функциям", чтобы я точно знал, стоит ли мне тратить время на восстановление моего прошлогоднего решения, если файла я так и не найду?
0
|
|
| 13.11.2018, 14:17 | |
|
Помогаю со студенческими работами здесь
40
В заданном одномерном массиве из n элементов найти количество повторяющихся чисел Найти количество элементов в одномерном массиве, абсолютная величина которых больше 10 составить программу определения числа одинаковых целых чисел к в серии длиной больше 1 в одномерном массиве Х=(х1,х2,…,хn) Найти количество повторяющихся последовательностей
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|