Cel
Utwórz funkcję, aby odwrócić konkatenację łańcucha
Wkład
Dwa ciągi (alfanumeryczne + spacje), gdzie jeden należy odjąć dla drugiego.
- Możesz założyć, że ciąg do odjęcia nigdy nie będzie większy niż drugi.
Wydajność
Wynik odejmowania
Odejmowanie
Powinieneś usunąć jeden ciąg z początku lub końca innego ciągu. Jeśli ciąg jest obecny na początku i na końcu, możesz usunąć tylko jeden, który zostanie usunięty, zależy od Ciebie.
Jeśli ciąg nie znajduje się na początku ani na końcu, lub nie jest dokładnym dopasowaniem, oznacza to nieprawidłowe odejmowanie i należy wypisać oryginalny ciąg.
Przypadki testowe
Prawidłowe odejmowanie
'abcde','ab' -> 'cde'
'abcde','cde' -> 'ab'
'abab','ab' -> 'ab'
'abcab','ab' -> 'abc' or 'cab'
'ababcde','ab' -> 'abcde'
'acdbcd','cd' -> 'acdb'
'abcde','abcde' -> ''
'abcde','' -> 'abcde'
'','' -> ''
Nieprawidłowe odjęcie (zwraca oryginalny ciąg)
'abcde','ae' -> 'abcde'
'abcde','aa' -> 'abcde'
'abcde','bcd' -> 'abcde'
'abcde','xab' -> 'abcde'
'abcde','yde' -> 'abcde'
Nieprawidłowe dane wejściowe (nie muszą być obsługiwane)
'','a' -> ''
To jest golf golfowy , więc wygrywa najkrótszy kod w bajtach!
'abcde','bcd' -> 'abcde'
, za złamanie mojego rozwiązania
'ababcde', 'ab'
→ 'abcde'
jako przypadek testowy. Niektóre naiwne algorytmy zawodzą na tym.
cde
? Co rozumiesz przez „ważny”? Czy musimy oceniać ważność danych wejściowych, czy masz na myśli, że nie otrzymamy nieprawidłowych danych wejściowych?