Objetivo
Crear una función para invertir la concatenación de cadenas
Entrada
Dos cadenas (alfanuméricas + espacios), donde una debe sustraerse por la otra.
- Puede suponer que la cadena que se restará nunca será más grande que la otra.
Salida
El resultado de la resta.
Sustracción
Debe eliminar una cadena desde el principio o el final de otra cadena. Si la cadena está presente al principio y al final, solo puede eliminar una, la que se eliminará depende de usted.
Si la cadena no está al principio o al final, o no es una coincidencia exacta, es una resta no válida y debe generar la cadena original.
Casos de prueba
Resta 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'
'','' -> ''
Resta no válida (devuelve la cadena original)
'abcde','ae' -> 'abcde'
'abcde','aa' -> 'abcde'
'abcde','bcd' -> 'abcde'
'abcde','xab' -> 'abcde'
'abcde','yde' -> 'abcde'
Entrada inválida (no necesita ser manejada)
'','a' -> ''
Este es el código de golf , por lo que gana el código más corto en bytes.
'abcde','bcd' -> 'abcde'
, por romper mi solución
'ababcde', 'ab'
→ 'abcde'
como un caso de prueba. Algunos algoritmos ingenuos fallan en eso.
cde
? ¿Qué quieres decir con válido? ¿Necesitamos juzgar la validez de la entrada o quiere decir que no recibiremos entradas no válidas?