Regeln
In dieser Herausforderung werde ich die Definition von "Anführungszeichen" ein wenig neu definieren.
Anführungszeichen (AKA- Anführungszeichen ) sind identische Zeichen, die paarweise in verschiedenen Schriftsystemen verwendet werden, um direkte Sprache, ein Zitat oder eine Phrase hervorzurufen. Das Paar besteht aus einem öffnenden Anführungszeichen und einem schließenden Anführungszeichen, bei denen es sich um dasselbe Zeichen handelt (Groß- und Kleinschreibung beachten).
Wenn sich Anführungszeichenpaare überlappen,
- Wenn ein Paar ein anderes verschachtelt, sind beide Paare weiterhin gültig.
- Wenn ein Paar kein anderes verschachtelt, bleibt das erste Startpaar gültig. Der andere wird nicht mehr als Paar betrachtet.
Beim Zählen von Anführungszeichen (Länge eines Anführungszeichenpaares)
- Die Anführungszeichen selbst zählen nicht.
- Die Länge jedes Paares wird unabhängig gezählt. Überlappung wirkt sich nicht auf andere aus.
Tor
Ihr Ziel ist es, die Gesamtlänge aller gültigen Angebote zu drucken. Dies ist Codegolf, daher gewinnt der Code mit den wenigsten Bytes.
Beispiele
Legend:
<foo>: Valid quotes
^ : Cannot be paired character
Input : ABCDDCBA
`A` (6): <BCDDCB>
`B` (4): <CDDC>
`C` (2): <DD>
`D` (0): <>
Output : 12
Input : ABCDABCD
`A` (3): <BCD>
`B` (0): ^ ^
`C` (0): ^ ^
`D` (0): ^ ^
Output : 3
Input : AABBBBAAAABA
`A` (0): <> <><> ^
`B` (0): <><> ^
Output : 0
Input : ABCDE
Output : 0
Input : Print the total length of all "quoted" characters
`r` (40): <int the total length of all "quoted" cha>
`n` (14): <t the total le>
`t` (15): < > <o> <h of all "quo>
` ` (7): ^ <total> <of> ^ ^
`h` (0): ^ ^ ^
`e` (8): < total l> ^ ^
`o` (0): ^ ^ ^
`a` (0): ^ ^ ^ ^
`l` (0): ^ ^ <>
`"` (0): ^ ^
`c` (0): ^ ^
Output : 84
Input : Peter Piper picked a peck of pickled peppers
`P` (5): <eter >
`e` (9): <t> ^ <d a p> <d p> ^
`r` (0): ^ ^
` ` (3): ^ ^ <a> <of> ^
`i` (5): <per p>
`p` (3): <er > ^ ^ ^ <>
`c` (8): <ked a pe> ^
`k` (7): ^ < of pic>
`d` (0): ^ ^
Output : 40
Input : https://www.youtube.com/watch?v=dQw4w9WgXcQ
`h` (27): <ttps://www.youtube.com/watc>
`t` (0): <> ^ ^
`/` (0): <> ^
`w` (14): <><.youtube.com/> <4>
`.` (7): <youtube>
`o` (0): ^ ^
`u` (1): <t>
`c` (0): ^ ^ ^
`Q` (8): <w4w9WgXc>
Output : 57
Antworten:
Gelee , 12 Bytes
Probieren Sie es online!
quelle
APL (Dyalog Unicode) , 36 Byte SBCS
Volles Programm. Fordert zur Eingabe von stdin auf.
Probieren Sie es online!
t←⍬
einen akkumulator einrichtent
(für t otal)⍞⊣
verwerfe das zugunsten der Zeichenketteneingabe von stdin (Symbol: Anführungszeichen in der Konsole){
…}⍣≡
Wende das folgende anonyme Lambda an, bis es stabil ist (Fixpunkt; vorheriges ≡ nächstes)⊢⍵
auf das Argument...
⎕S'\2'
PCRE S uche für die folgenden, Gruppe 2 zurück für jedes Spiel:(.)
Jedes Zeichen (wir nennen diese Gruppe 1)(.*?)
so wenig Zeichen wie möglich (wir nennen diese Gruppe 2)\1
das Zeichen der Gruppe 1t,←
aktualisieret
indem du das ant
den aktuellen Wert anhängstt⊣
verwerfe das (die endgültige Liste ohne Übereinstimmungen) zugunsten vont
≢
Zählen Sie die Anzahl der Zeichen darinquelle
Ruby , 49 Bytes
Rekursive Lösung. Suchen Sie nach Angebotsgruppen, zählen Sie deren Längen und suchen Sie dann rekursiv nach Untergruppenlängen und addieren Sie alles.
Probieren Sie es online!
quelle
JavaScript (ES6), 64 Byte
Probieren Sie es online!
Kommentiert
quelle
JavaScript (Node.js) ,
656462 ByteProbieren Sie es online!
Ursprünglicher Ansatz (64 Bytes):
Probieren Sie es online!
quelle
Brain-Flak , 100 Bytes
Probieren Sie es online!
Kommentiert
quelle
Gelee , 17 Bytes
Probieren Sie es online!
Ein vollständiges Programm, das ein einzelnes Argument, die in eine Liste eingeschlossene Eingabezeichenfolge und die Anzahl der Anführungszeichen als Ganzzahl zurückgibt.
quelle