|
0 / 0 / 0
Регистрация: 23.09.2018
Сообщений: 11
|
||||||
В одномерном массиве найти количество повторяющихся последовательностей символов с длиной больше или равной двум11.11.2018, 23:55. Показов 8775. Ответов 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) Найти количество повторяющихся последовательностей
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|