Objetivo
Crie uma função para reverter a concatenação de cadeias
Entrada
Duas cadeias (alfanuméricas + espaços), onde uma deve ser subtraída pela outra.
- Você pode supor que a sequência a ser subtraída nunca será maior que a outra.
Saída
O resultado da subtração
Subtração
Você deve remover uma string do início ou do fim de outra string. Se a sequência estiver presente no início e no final, você poderá remover apenas uma, e a que será removida depende de você.
Se a sequência não está no início ou no final, ou não é uma correspondência exata, é uma subtração inválida e você deve gerar a sequência original.
Casos de teste
Subtração válida
'abcde','ab' -> 'cde'
'abcde','cde' -> 'ab'
'abab','ab' -> 'ab'
'abcab','ab' -> 'abc' or 'cab'
'ababcde','ab' -> 'abcde'
'acdbcd','cd' -> 'acdb'
'abcde','abcde' -> ''
'abcde','' -> 'abcde'
'','' -> ''
Subtração inválida (retorna a string original)
'abcde','ae' -> 'abcde'
'abcde','aa' -> 'abcde'
'abcde','bcd' -> 'abcde'
'abcde','xab' -> 'abcde'
'abcde','yde' -> 'abcde'
Entrada inválida (não precisa ser manipulada)
'','a' -> ''
Isso é código-golfe , então o código mais curto em bytes vence!
'abcde','bcd' -> 'abcde'
para quebrar a minha solução
'ababcde', 'ab'
→ 'abcde'
como um caso de teste. Alguns algoritmos ingênuos falham nesse.
cde
? O que você quer dizer com válido? Precisamos julgar a validade da entrada ou você quer dizer que não receberemos entradas inválidas?