Об'єктивна
Створіть функцію для зворотного з'єднання рядків
Вхідні дані
Два рядки (буквено-цифрові + пробіли), де один слід відняти для іншого.
- Можна припустити, що рядок, яку потрібно відняти, ніколи не буде більшою, ніж інша.
Вихідні дані
Результат від віднімання
Віднімання
Ви повинні видалити один рядок із початку або з кінця іншої. Якщо рядок присутній на початку та в кінці, ви можете видалити лише одну, яку ви будете вилучити, залежить від вас.
Якщо рядок не знаходиться на початку або в кінці, або не відповідає точній відповідності, це недійсне віднімання, і вам слід вивести початковий рядок.
Випробування
Дійсне віднімання
'abcde','ab' -> 'cde'
'abcde','cde' -> 'ab'
'abab','ab' -> 'ab'
'abcab','ab' -> 'abc' or 'cab'
'ababcde','ab' -> 'abcde'
'acdbcd','cd' -> 'acdb'
'abcde','abcde' -> ''
'abcde','' -> 'abcde'
'','' -> ''
Недійсне віднімання (повертає початковий рядок)
'abcde','ae' -> 'abcde'
'abcde','aa' -> 'abcde'
'abcde','bcd' -> 'abcde'
'abcde','xab' -> 'abcde'
'abcde','yde' -> 'abcde'
Недійсний ввід (обробляти не потрібно)
'','a' -> ''
Це код-гольф , тому найкоротший код у байтах виграє!
'abcde','bcd' -> 'abcde'
порушив моє рішення
'ababcde', 'ab'
→ 'abcde'
як тестовий випадок. Деякі наївні алгоритми виходять з ладу на цьому.
cde
? Що ви маєте на увазі під дією? Чи потрібно судити про обґрунтованість вводу, чи ви маєте на увазі, що ми не отримаємо недійсні дані?