Нигде не нашёл возможности сцепить формулами произвольный массив без итераций. Хотел построить символы в строке в обратном порядке, чтобы проверить, является ли она палиндромом. Но, ознакомившись с удивительными решениями различных задач в Мозговом штурме, понял, что проверить строку на палиндром всё-таки можно. Для строки без пробелов и других знаков препинания получилась формула 89 символов, для строки с пробелами между словами 157 символов. Длину текста ограничим 45 символами. Формула протягиваемая. Файл пример прилагается. Естественно, без формул. Есть ли желающие взбодрить мозги до следующего понедельника?
Нигде не нашёл возможности сцепить формулами произвольный массив без итераций. Хотел построить символы в строке в обратном порядке, чтобы проверить, является ли она палиндромом. Но, ознакомившись с удивительными решениями различных задач в Мозговом штурме, понял, что проверить строку на палиндром всё-таки можно. Для строки без пробелов и других знаков препинания получилась формула 89 символов, для строки с пробелами между словами 157 символов. Длину текста ограничим 45 символами. Формула протягиваемая. Файл пример прилагается. Естественно, без формул. Есть ли желающие взбодрить мозги до следующего понедельника?Светлый
Какая максимальная длина строки в ячейке? Насколько я знаю в Excel2003 в ячейке отображаются только 1024 знака. Так что для любой длины формулу делать смысла нет, да и в условии 45 знаков.
Решение когда строка без пробелов - 7874 64 знака, с пробелами - 112108 98 Формулы массивные. длина формулы без учета знака "=", т.е. по правилам. Формулы проверяют строки до 99 символов. Надеюсь я ничего не упустил при проверке работоспособности формул.
PS. Сергей, подкинь еще Палиндромов для проверки формул. Мои формулы правильно проверяют "аб-ба" и "123454321"
Какая максимальная длина строки в ячейке? Насколько я знаю в Excel2003 в ячейке отображаются только 1024 знака. Так что для любой длины формулу делать смысла нет, да и в условии 45 знаков.
Решение когда строка без пробелов - 7874 64 знака, с пробелами - 112108 98 Формулы массивные. длина формулы без учета знака "=", т.е. по правилам. Формулы проверяют строки до 99 символов. Надеюсь я ничего не упустил при проверке работоспособности формул.
PS. Сергей, подкинь еще Палиндромов для проверки формул. Мои формулы правильно проверяют "аб-ба" и "123454321"AlexM
Номер мобильного модема (без голосовой связи) 9269171249 МегаФон, Московский регион.
Сообщение отредактировал AlexM - Воскресенье, 26.04.2015, 20:52
НАЖАЛ КАБАН НА БАКЛАЖАН ТЫ САША СЫТ НА В ЛОБ, БОЛВАН АРГЕНТИНА МАНИТ НЕГРА НО ТЫ ТОНКА КАК НОТЫ ТОН АДА ПСАРИ И РАСПАДА ДОРОГО НЕБО ДА НАДОБЕН ОГОРОД ЛЕГ НА ХРАМ И ДИВЕН И НЕВИДИМ АРХАНГЕЛ УРЕНГОЙ ДОРОГ КАК ГОРОД ЙОГ НЕРУ
Да, мне ещё учиться и учиться.
НАЖАЛ КАБАН НА БАКЛАЖАН ТЫ САША СЫТ НА В ЛОБ, БОЛВАН АРГЕНТИНА МАНИТ НЕГРА НО ТЫ ТОНКА КАК НОТЫ ТОН АДА ПСАРИ И РАСПАДА ДОРОГО НЕБО ДА НАДОБЕН ОГОРОД ЛЕГ НА ХРАМ И ДИВЕН И НЕВИДИМ АРХАНГЕЛ УРЕНГОЙ ДОРОГ КАК ГОРОД ЙОГ НЕРУ
А Вера рева А Лида гадила А Лида свечку чукче всадила А врет стерва Бабе плоть толпе баб Буду жив увижу дуб Гене давал Слава денег Еж колок же Косе водка как довесок Лезу на санузел А по морде ведром опа
А Вера рева А Лида гадила А Лида свечку чукче всадила А врет стерва Бабе плоть толпе баб Буду жив увижу дуб Гене давал Слава денег Еж колок же Косе водка как довесок Лезу на санузел А по морде ведром опаkrosav4ig
вне конкурса. макрофункция, учитывает все знаки препинания и пробелы (для расчета берет только русские символы) в общей сложности 200 символов с 1 "=" (в вызове функции)
вне конкурса. макрофункция, учитывает все знаки препинания и пробелы (для расчета берет только русские символы) в общей сложности 200 символов с 1 "=" (в вызове функции)krosav4ig
Function Rio(X$) As Byte Dim A%, i% X = LCase(Replace(X, " ", "")) A = Len(X) For i = 1 To A If Mid(X, i, 1) <> Mid(X, A + 1 - i, 1) Then Exit Function Next i Rio = 1 End Function
[/vba]
102 без пробелов (187 с пробелами).
UDF вне конкурса:
[vba]
Код
Function Rio(X$) As Byte Dim A%, i% X = LCase(Replace(X, " ", "")) A = Len(X) For i = 1 To A If Mid(X, i, 1) <> Mid(X, A + 1 - i, 1) Then Exit Function Next i Rio = 1 End Function