powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Решение задачи.
9 сообщений из 9, страница 1 из 1
Решение задачи.
    #39439873
FeNs59
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, давно решил поменять профессию и выпал шанс обучаться в крупном холдинге на программиста. Безумно нравится, но как всегда бывает в обучении, не без затруднений.
Уже долго бьюсь над задачей и не могу решить. Я понимаю, что на меня придется потратить свое время, чтобы подсказать. Но за любую помощь буду благодарен вам.

Реализовать функцию, возвращающую булев результат и определяющую, является ли переданная
в нее строка палиндромом. Строка может содержать символы кириллицы и латиницы в любом регистре,
пробелы. Пример палиндрома: «А роза упала на лапу Азора».


Мои умственно-отсталые наброски

SET SERVEROUTPUT ON
create or replace function poli (a varchar2)
return boolean
is
b varchar2(60); -- Пустая строка для reverse
z varchar2(60):=replace(lower(a),' ');
c varchar2(60):=lower(a);
h integer :=2;
begin

if instr(a,' ') > 0 then -- Убираем пробелы и делаем пропись
begin
for i in reverse 1 .. length(z) loop
b := b||substr(z, i, 1);
end loop;
if b=z then
return true;
elsif b<>z then
return false;
end if;
end;
else
dbms_output.put_line(c || ' 2 вариант'); -- если нет пробелов понижаем регистр
end if;
end;
...
Рейтинг: 0 / 0
Решение задачи.
    #39439874
FeNs59
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
господи почему все без отступов получилось
...
Рейтинг: 0 / 0
Решение задачи.
    #39439879
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FeNs59,

А в чем сомнения? Да, несколько коряво, но работающий код:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
SQL> begin
  2      if poli('Murder for a jar of red rum')
  3        then
  4          dbms_output.put_line('Murder for a jar of red rum');
  5        else
  6          dbms_output.put_line('No more rum for you');
  7      end if;
  8  end;
  9  /
Murder for a jar of red rum

PL/SQL procedure successfully completed.

SQL> 



SY.
...
Рейтинг: 0 / 0
Решение задачи.
    #39439882
FeNs59
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY, добрый вечер. Да все работает) проблема скорее была проверить, чем написать) Спасибо за ваш ответ.
...
Рейтинг: 0 / 0
Решение задачи.
    #39439938
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интересно, являются ли (считаются ли) палиндромами строки null и ' '
...
Рейтинг: 0 / 0
Решение задачи.
    #39440305
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

По этим вопросам есть специальный специалист на этом форуме - booby.
Он может четко объяснить принципиальную разницу во фразах "у Пети нет яблок" и "у Пети есть ноль яблок".

Кстати, для людей с преобладающим визуальным мышлением теперь доступно отличие между null и "".
...
Рейтинг: 0 / 0
Решение задачи.
    #39440563
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxинтересно, являются ли (считаются ли) палиндромами строки null и ' '
являются оба, парадоксальным образом.
На том основании, что:
а) строка длины ноль есть палиндром.
б) если уже известно, что строка p - палиндром, то новый палиндром из p
порождается путем симметричного приписывания слева от p и справа от p одного и того же символа.

Хотя в Oracle и нет строк нулевой длины (правило a нельзя выполнить), конкатенация
как для null так и для '' определена так, что "приписывание" методом совершения операции конкатенации слева от обоих кандидатов на палиндромы дает палиндром (б удовлетворено),
что решает вопрос о принадлежности как null так и '' к палиндромам.
...
Рейтинг: 0 / 0
Решение задачи.
    #39440723
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для модераторов:
имхо, сообщение должно удаляться целиком, или оставаться в своем исходном виде.
огрызки искажают реальность.
...
Рейтинг: 0 / 0
Решение задачи.
    #39440728
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyдля модераторов:
имхо, сообщение должно удаляться целиком, или оставаться в своем исходном виде.
огрызки искажают реальность.Модераторы не читают все темы и не увидят это если ты им не сообщишь.

В данном конкретном случае я воспользовался удобным интерфейсом.
Не совсем понятно чем я тебя так задел, болезный.
Но не стоит разговаривать так будто ты бессмертный.
АйТи мир намного уже чем может показаться.

Если ты хочешь отстаивать свои взгляды до конца - создавай тему в ОНС.
Только на нормальном форуме тебя бы вообще забанили, но в Оракловой ветке свободные нравы.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Решение задачи.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]