0 / 0 / 0
Регистрация: 18.12.2014
Сообщений: 20
1

Проверить, является ли строка палиндромом

29.05.2015, 18:39. Показов 3002. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проверить, является ли строка полиномом палиндромом
(читается одинаково задам-наперед)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.05.2015, 18:39
Ответы с готовыми решениями:

Проверить является ли строка e-mail
Проверить является ли введенная строка e-mail. Без усложнений, то есть просто вида *@*.* С...

[Кумир] Ввести символьную строку и проверить является ли она палиндромом.
ввести символьную строку и проверить является ли она палиндромом На кумир

Проверить, является ли строка палиндромом
программа проверяет ОДНО слово на палиндром, а как сделать чтобы она работала с пробелами? var...

Проверить, является ли строка палиндромом
доброго времени суток. помогите пожалуйста. надо реализовать программу... словный палиндром... и...

7
шКодер самоучка
2227 / 1921 / 927
Регистрация: 09.10.2013
Сообщений: 4,259
Записей в блоге: 7
29.05.2015, 18:49 2
Haskell
1
2
3
some::String->Bool
some s = (reverse s) == s
main = print $ show $ some "abx"
1
0 / 0 / 0
Регистрация: 18.12.2014
Сообщений: 20
29.05.2015, 19:43  [ТС] 3
Забыл уточнить, БЕЗ использования reverse
0
202 / 200 / 65
Регистрация: 06.10.2013
Сообщений: 552
29.05.2015, 21:00 4
Ну так напишите свой reverse. Например, так:
Haskell
1
2
3
rev []  = []
rev [x] = [x]
rev x   = (rev $ tail x) ++ [head x]
2
Модератор
5046 / 3275 / 526
Регистрация: 01.06.2013
Сообщений: 6,802
Записей в блоге: 9
29.05.2015, 21:21 5
Не полином, а палиндром это называется.
Haskell
1
2
3
4
5
6
7
8
palindrome :: String -> Bool
palindrome [] = True
palindrome [x] = True
palindrome (x:xs)
   | x == last xs = palindrome $ init xs
   | otherwise = False
   
main = print $ palindrome "арозаупаланалапуазора"
1
Модератор
Эксперт функциональных языков программирования
3051 / 2193 / 459
Регистрация: 26.03.2015
Сообщений: 8,469
29.05.2015, 21:44 6
Добавлено через 12 минут
KolodeznyDiver,
На каждом шаге мы будем весь список пробегать 2 раза (для last и для init)?
Выглядит неэффективно.
0
Модератор
5046 / 3275 / 526
Регистрация: 01.06.2013
Сообщений: 6,802
Записей в блоге: 9
29.05.2015, 22:27 7
Цитата Сообщение от Shamil1 Посмотреть сообщение
На каждом шаге мы будем весь список пробегать 2 раза (для last и для init)?
Выглядит неэффективно.
Да. Не эффективно. С reverse быстрее. Но если такие учебные задачи задают. И не факт что самодельный reverse прокатит. Использование двухнаправленного списка (Data.Sequence) тоже врят ли прокатит.

Добавлено через 24 минуты
Можно ещё так
Haskell
1
2
palindrome :: Eq a => [a] -> Bool
palindrome s = fst $ foldr (\a (r, b:bx) -> (r && a==b,bx)) (True,s) s
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
36578 / 20308 / 4218
Регистрация: 12.02.2012
Сообщений: 33,607
Записей в блоге: 13
30.05.2015, 07:21 8
Наверняка "пафос" задачи в том, чтобы отсечь очевидное решение (с reverse) и использовать простую рекурсию. Напр. так:

Haskell
1
2
3
4
isPal :: String -> Bool
isPal ""    = True
isPal [x]  = True
isPal x    = (head x)==(last x) && (isPal $ drop 1 $ init x)
1
30.05.2015, 07:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2015, 07:21
Помогаю со студенческими работами здесь

Проверить является ли строка палиндромом
функция проверяет,является ли передаваемая строка палиндромом?

Проверить является ли строка палиндромом
Задана строка, состоящая из символов. Символы объединяются в слова. Слова друг от друга отделяются...

Проверить, является ли строка палиндромом
Cчитать из файла строку. Проверить, является ли она палиндромом. Пробелы игнорировать.

Проверить, является ли строка палиндромом
Возможно я не первый кто просит помочь в данной задачи, но все же повторюсь. Задание: Проверить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru