Biorąc pod uwagę ciąg, zamień wszystkie lewe podwójne cudzysłowy na dwa znaki odwrotne i wszystkie prawe podwójne cudzysłowy na dwa pojedyncze cudzysłowy.
Lewy cytat oznacza cytat, który rozpoczyna cytat. Prawidłowe cytaty oznaczają cytaty, które kończą cytat. Cytaty nie mogą być zagnieżdżone. Możesz założyć, że w ciągu znajduje się parzysta liczba podwójnych cudzysłowów.
Przykłady
Wejście:
"To be or not to be," quoth the Bard, "that
is the question".
The programming contestant replied: "I must disagree.
To `C' or not to `C', that is The Question!"
Wynik:
``To be or not to be,'' quoth the Bard, ``that
is the question''.
The programming contestant replied: ``I must disagree.
To `C' or not to `C', that is The Question!''
Odpowiedzi:
Nieczytelny ,
789777 bajtów-12 bajtów przy użyciu zmiennej X34 zamiast X6.
Wypróbuj online!
Wyświetlany czcionką o zmiennej szerokości, według tradycyjnego hołdu dla nazwy języka.
Nauczyłem się Nieczytelnego do tego wyzwania, ponieważ jest to oczywiście najlepsze narzędzie do tego zadania. Jedynymi postaciami dozwolonymi w Nieczytelnym są
'
i"
dlatego z pewnością doskonale nadają się do wyzwania polegającego na zmianie"
się''
. Czyż nieWyjaśnienie:
(Wywołania na X34 są w rzeczywistości wywołaniami na X (X5), ponieważ X5 = 34).
źródło
Siatkówka , 13 bajtów
Szybka nauka Retiny, ponieważ z jakiegoś powodu nie lubię wygrywania Japt i wydaje mi się, że rozwiązanie C # i tak użyłoby wyrażeń regularnych. Wiem, że istnieje odpowiedź Retina, ale nie użyłem jej podczas jej tworzenia, a także znalazłem ją (dokładnie).
Wypróbuj online!
źródło
JavaScript (ES9), 34 bajty
Praca na cytowanych blokach:
Wypróbuj online!
JavaScript (ES6), 38 bajtów
Praca nad każdym podwójnym cytatem osobno:
Wypróbuj online!
źródło
Galaretka ,
1513 bajtówWypróbuj online!
Pełny program
źródło
Python 3 , 65 bajtów
Wypróbuj online!
-8 bajtów dzięki Erikowi Outgolfer
źródło
s[0].replace
ją jawnyms[0]=='"'
sprawdzeniem, wraz z kilkoma innymi modyfikacjami).Japt , 12 bajtów
Byłoby 11 tylko dla ograniczenia (a może to jest błąd w) Japt.
Spróbuj
źródło
Q
tutaj użyć : \,
też.Q
zamiast'"
TeX,
5432 bajtyDo wyzwania wymiany cytatów TeX potrzebujemy oczywiście również wersji TeX!
...
jest łańcuchem wejściowym, więc nie dodaje się do liczby bajtów.źródło
\def"#1"{``#1''}
? (lub\long\def
jeśli oczekujesz, że cytat przekroczy granicę akapitu)Węgiel , 23 bajty
Wypróbuj online! Link jest do pełnej wersji kodu. Zawiera 8 bajtów, aby uniknąć kłopotliwego formatu wejściowego. Wyjaśnienie:
Zbieraj linie wejściowe, aż do osiągnięcia pustej linii.
Dołącz do linii na znakach nowej linii.
Podziel dane wejściowe na cytaty.
Zamapuj każdą część i połącz wyniki z drukiem niejawnym.
Pozostaw pierwszą część bez zmian.
Przedrostek odpowiedniej wyceny, podwójny.
źródło
R , 40 bajtów
Wypróbuj online!
Odczytuje ciąg wejściowy, oddzielając je dla każdego
"
, dając wektor ciągów znaków. Następnie wkleja te struny, naprzemiennie między podwójnymi wsteczne i podwójne apostrofy jako separatory, recykling je w razie potrzeby.Ktoś prawdopodobnie opublikuje krótszą odpowiedź R na podstawie wyrażenia regularnego ... Myślę jednak, że ta odpowiedź jest bardziej typowa dla R.
Objaśnienie
scan(,"",,,'"',"")
części:źródło
Perl 6 , 23 bajtów
Wypróbuj online!
Cholera, oczywiste rozwiązanie jest krótsze. Zastępuje każdą cytowaną część wersją odpowiednimi cytatami.
Perl 6 , 24 bajtów
Wypróbuj online!
Zastępuje każdy podwójny cudzysłów na przemian między dwoma zestawami znaków.
źródło
Siatkówka , 15 bajtów
Wypróbuj online! Usuwa nudną odpowiedź Retina 0.8.2 o 1 bajt. Wyjaśnienie:
Zduplikuj wszystkie cytaty.
Cyklicznie zamieniaj cudzysłowy na pary odwrotnych znaków i pojedyncze cudzysłowy.
Nudna 16-bajtowa odpowiedź Retina 0.8.2 za kompletność:
Wypróbuj online!
źródło
PHP , 62 bajty
Rozwiązanie inne niż RegEx:
Wypróbuj online!
PHP , 48 bajtów
Rozwiązanie RegEx firmy Port of Arnauld :
Wypróbuj online!
źródło
C (gcc) ,
6968 bajtówWypróbuj online!
Jeden bajt wygolony przez @ceilingcat!
źródło
Labirynt , (43?) 53 bajtów
Wypróbuj online!
Golfowa wersja tego, znacznie prostszego, 92-bajtowego programu:
Jeśli nie musimy obsługiwać danych wejściowych zawierających bajt zerowy, to 43 bajty :
źródło
Python 2 , 57 bajtów
Wypróbuj online!
Chociaż naprawdę podoba mi się odpowiedź Jitse .
źródło
flags
argumentu:r'(?s)"(.*?)"'
(GNU) sed ,
38 3330 bajtów-4 przez usunięcie
-n
flagi i niejawne drukowanien
, -1 przez ponowne użycie poprzednich/expression/
, dzięki @Cowsquack. -3 przy użyciu niejawnej gałęzi do końca.Wypróbuj online! Wypróbuj online!Wypróbuj online!Kilka dość podstawowych skoków z wytwórni.
Prawdopodobnie można to zagrać w bajt lub dwa.źródło
-n
flagi powinno zaoszczędzić nieco więcej. (I oczywiście istnieje trywialnesed -z
rozwiązanie, które, jak zakładam, umyślnieman sed
chwilę i doszedłem do 30. Nie krępuj się i daj mi znać, co przegapiłem, masz doświadczenie w golfa na tym języku. (Och,-z
jest dla mnie nowy, ale zgadzam się. Zostanę bez niego.)05AB1E , 15 bajtów
Wypróbuj online!
Brak Wyrażenia regularne w 05AB1E, więc podzielony na
"
, zrób listę przemiennego``
i''
, następnie przeplot dwóch.źródło
Haskell ,
676058 bajtówWypróbuj online!
Odpowiednią funkcją jest
(#0)
.Ponieważ początkowo myślałem, że pytanie wymaga również od nas konwersji pojedynczych cudzysłowów, tutaj jest wersja, która obsługuje oba:
Haskell , 125 bajtów
Wypróbuj online!
źródło
"\""
powinny być"''"
(dwa apostrofy)"
w tekscie, możesz go użyć tutaj.QuadR , 14 bajtów
Wypróbuj online!
Proste wyszukiwanie / zamiana za pomocą otoki @ Adám dla aplikacji APL firmy Dyalog
⎕R
.W jaki sposób:
źródło
Czerwony , 79 bajtów
Wypróbuj online!
źródło
Galaretka , 13 bajtów
Pełny program.
Wypróbuj online!
W jaki sposób?
źródło
Lua , 36 bajtów
Wypróbuj online!
Wow, tylko dwa znaki dłuższe niż rozwiązanie js.
źródło
Perl 5
-p0
, 19 bajtówWypróbuj online!
źródło
Stax , 11 bajtów
Uruchom i debuguj
Procedura:
'"'
na blok, który wytwarza naprzemienne wyjścia z par backticks i foreticks (?)źródło
Java 8, 40 bajtów
Wypróbuj online.
Wyjaśnienie:
Wyjaśnienie Regex:
źródło
Wren , 91 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
GolfScript ,
3534 bajtyWypróbuj online!
Wyjaśnienie
źródło