Форум программистов, компьютерный форум, киберфорум
Haskell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 1
Регистрация: 01.03.2016
Сообщений: 64

Заданы две строки. Убрать из более длинной строки последние символы так, чтобы длина строк стала одинаковой и склеить п

31.10.2017, 09:11. Показов 2444. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создайте функцию (функции) для обработки списков, используя встроенные функции

Haskell
1
2
 
length, !!, (:), drop, take, head, tale, last, elem, sum, product, maximum, minimum, ++, concat, reverse:
Заданы две строки. Убрать из более длинной строки последние символы так, чтобы длина строк стала одинаковой и склеить полученные строки.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
31.10.2017, 09:11
Ответы с готовыми решениями:

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

Добавить лишние «пробелы» между словами так, чтобы длина строки стала кратна 60
Текст некоторой строки вводится в режиме диалога и содержит простое предложение, в котором слова отделяются символом «пробел». Добавить...

Необходимо изменить строку так, чтобы длина строки стала равна заданной длине
Дана строка текста, в котором нет начальных и конечных пробелов. Необходимо изменить её так, чтобы длина строки стала равна заданной длине...

5
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38171 / 21106 / 4307
Регистрация: 12.02.2012
Сообщений: 34,699
Записей в блоге: 14
31.10.2017, 10:06
Haskell
1
2
3
4
5
task :: String -> String -> String
task x y | (lx >= ly) = (take ly x) ++ y
         | otherwise  = x ++ (take lx y)
           where lx = length x
                 ly = length y
Добавлено через 8 минут
Еще вариант:

Haskell
1
2
3
4
5
6
task' :: String -> String -> String
task' x y = fst tmp ++ snd tmp
            where tmp = h x y ("","")
                  h "" _ p = p
                  h _ "" p = p
                  h (x:xs) (y:ys) (px,py) = h xs ys (px++[x],py++[y])
2
1195 / 588 / 88
Регистрация: 20.09.2012
Сообщений: 1,881
31.10.2017, 13:48
Лучший ответ Сообщение было отмечено Catstail как решение

Решение

Haskell
1
2
3
4
task x y = 
    l x y x ++ l x y y 
    where 
        l a b = take (min (length a) (length b))
4
Модератор
 Аватар для Curry
5158 / 3479 / 536
Регистрация: 01.06.2013
Сообщений: 7,541
Записей в блоге: 9
31.10.2017, 17:13
Ну, вот. Хорошие варианты уже разобрали.
Haskell
1
2
3
4
task :: String -> String -> String
task = go [] []
    where go s1 s2 (x:xs) (y:ys) = go (x:s1) (y:s2) xs ys
          go s1 s2 _ _ = reverse s1 ++ reverse s2
Если бы был другой набор функций, то
Haskell
1
2
task :: String -> String -> String
task s = uncurry (++) . unzip . zip s
3
Модератор
 Аватар для Curry
5158 / 3479 / 536
Регистрация: 01.06.2013
Сообщений: 7,541
Записей в блоге: 9
01.11.2017, 20:47
Кстати, решение pycture, упрощается
Haskell
1
2
task x y = l x ++ l y 
    where l = take (min (length x) (length y))
2
0 / 0 / 1
Регистрация: 01.03.2016
Сообщений: 64
04.11.2017, 23:27  [ТС]
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.11.2017, 23:27
Помогаю со студенческими работами здесь

Необходимо изменить строку так, чтобы длина строки стала равна заданной длине
Дана строка текста, в котором нет начальных и конечных пробелов. Необходимо изменить ее так, чтобы длина строки стала равна заданной длине...

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

Начиная с первой строки сдвинуть все строки на две вниз, а последние две перенести на место первых двух строк
Используя Procedure Swap!

Заданы две строки. Можно ли переставить буквы в одном из слов так, чтобы слова стали одинаковыми?
F. Заданы две строки А и В. Можно ли переставить буквы в одном из слов так, чтобы слова стали одинаковыми? Выведите "Yes", если...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
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(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru