Візьміть три входи, рядок тексту T
; рядок символів для заміни F
; і рядок символів , щоб замінити їх, R
. Для кожної підрядки T
з тими самими (нечутливими до регістру) символами F
, замініть їх символами в R
. Однак збережіть той самий випадок, що і оригінальний текст.
Якщо є більше символів , R
ніж F
, додаткові символи повинні бути той же випадок , коли вони знаходяться в R
. Якщо в ньому є цифри або символи F
, то відповідні символи R
повинні зберігати випадок, у якому вони є R
. F
не обов'язково відображатиметься в T
.
Можна припустити, що весь текст буде знаходитись у діапазоні ASCII для друку.
Приклади
"Text input", "text", "test" -> "Test input"
"tHiS Is a PiEcE oF tExT", "is", "abcde" -> "tHaBcde Abcde a PiEcE oF tExT"
"The birch canoe slid on the smooth planks", "o", " OH MY " -> "The birch can OH MY e slid OH MY n the sm OH MY OH MY th planks"
"The score was 10 to 5", "10", "tEn" -> "The score was tEn to 5"
"I wrote my code in Brain$#@!", "$#@!", "Friend" -> "I wrote my code in BrainFriend"
"This challenge was created by Andrew Piliser", "Andrew Piliser", "Martin Ender" -> "This challenge was created by Martin Ender"
// Has a match, but does not match case
"John does not know", "John Doe", "Jane Doe" -> "Jane does not know"
// No match
"Glue the sheet to the dark blue background", "Glue the sheet to the dark-blue background", "foo" -> "Glue the sheet to the dark blue background"
// Only take full matches
"aaa", "aa", "b" -> "ba"
// Apply matching once across the string as a whole, do not iterate on replaced text
"aaaa", "aa", "a" -> "aa"
"TeXT input", "text", "test" -> "TeST input"
"The birch canoe slid on the smooth planks", "o", " OH MY "
таким жартівливим, але я любив цей приклад.
"TeXT input", "text", "test"