So einfach wie das ABC

28

Eingang

Ein String, der höchstens eine von jedem des Buchstaben enthält A, Bund C. Sie können in beliebiger Reihenfolge sein. Die leere Zeichenfolge ist eine gültige Eingabe.

Hinweis: In einer früheren Version dieser Herausforderung wurden die Buchstaben LEJanstelle von verwendet, ABCund sie können weiterhin verwendet werden, wenn dies gewünscht wird.

Ausgabe

Eine Reihe von den A, B, CBuchstaben , die nicht in der Eingabe waren. Sie können in beliebiger Reihenfolge sein.

Wenn es sich bei der Ausgabe um eine leere Zeichenfolge handelt, ist es nur gültig, keine Ausgabe anzugeben, wenn dies für Ihre Implementierung sinnvoll ist. (Sie müssen beispielsweise keine printleere Zeichenfolge aufrufen .)

Beispiele

  • Wenn es sich bei der Eingabe um eine Eingabe handelt, sollte Bdie Ausgabe entweder "da" CAoder " ACda" sein Aund Cnicht in der Eingabe vorhanden sein.
  • Wenn die Eingabe eine leere Zeichenfolge ist, sollte die Ausgabe eine ABCbeliebige Permutation sein, da keiner der drei Buchstaben in der Eingabe vorhanden ist.
  • Wenn die Eingabe ist, sollte CABdie Ausgabe die leere Zeichenfolge sein, da alle drei Buchstaben in der Eingabe vorhanden sind.

Testfälle

Es gibt so wenige Eingabefälle, dass wir sie alle aufzählen können:

in -> out1 | out2 | out3 | ...
ABC -> ""
ACB -> ""
BCA -> ""
BAC -> ""
CAB -> ""
CBA -> ""
AB -> C
AC -> B
BC -> A
BA -> C
CA -> B
CB -> A
A -> BC | CB
B -> CA | AC
C -> AB | BA
"" -> ABC | ACB | BCA | BAC | CAB | CBA

Alle gültigen Ausgaben für jede Eingabe werden durch |'s getrennt angegeben. ""steht für die leere Zeichenfolge

Wertung

Der kürzeste Code in Bytes gewinnt. Bedenken Sie jedoch, dass Sie möglicherweise mehr Anerkennung dafür erhalten, dass Sie die Herausforderung eher auf einzigartige als auf kurze Weise gelöst haben ;)

Calvins Hobbys
quelle
1
Die Aufgabe ist die Differenz zwischen einer Konstanten und einer Eingabe. Das Erfordernis, dass alles in Strings ausgeführt wird, ist im Hinblick auf die Schwierigkeit der eigentlichen Aufgabe umständlich.
Mego
2
Ich erinnere mich vage an ein genaueres Dup-Match, bei dem Sie die Eingabe von einer konstanten Menge subtrahieren mussten.
16.
1
Können Eingaben Buchstaben außerhalb von "ABC" enthalten? Die Angabe: "Eine Zeichenfolge, die höchstens einen der Buchstaben A, B und C enthält" schließt solche Eingaben nicht aus.
theonlygusti
1
@theonlygusti Die Eingabe sollte nur ABC enthalten
Calvins Hobbys

Antworten:

20

Python 3, 29 27 22 Bytes

lambda x:{*"ABC"}-{*x}

-2 Bytes dank Jonathan Allan

-5 Bytes dank Rod

Trelzevir
quelle
print(*{*"LEJ"}-{*input()})spart 2. (getestet auf 3.5 und 3.6).
Jonathan Allan
14
Ich liebe Python ❤️
Theonlygusti
@theonlygusti Was ist mit <3 und ♥ passiert?
wizzwizz4
@theonlygusti: Ich würde Python lieben, wenn ich Lamda durch 𝛌
Fahim Parkar
10

Gelee , 4 Bytes

Vielen Dank an @DuctrTape für den Artikel über die Änderung und das Vorhandensein von "ABC" in Jellys Wörterbuch.

“ḃ»ḟ

Probieren Sie es online!

“ḃ»schlägt den Eintrag "ABC" in Jellys Wörterbuch nach, ist die Filer-Discard-Dyade, die die in der Eingabe gefundenen Zeichen aus dieser Zeichenliste verwirft. Das Ergebnis wird implizit gedruckt.


Für eine Kleinbuchstabenversion kann der zu verwendende Wörterbucheintrag entweder "abac" ( “c») oder "abaca" ( “i») sein.


Wenn die Herausforderung "LEJ" war, konnten in der Großbuchstabenvariante nur 6 Bytes erreicht werden, da mit diesem Zeichensatz keine Wörterbucheinträge vorhanden sind, so dass wir die Liste der Zeichen “LEJ”(oder eine Permutation davon) erstellen müssen .

Die Kleinbuchstabenvariante lag aufgrund des Wortes "jell" ( ) besser bei 5 Bytes “ẎṄ».

Jonathan Allan
quelle
1
Mir gefällt, wie der Großteil des Codes nur die Zeichenfolge "ABC" generiert und das eigentliche Programm selbst aus einem Zeichen besteht. Klassisches Gelee.
Sagiksp
6

Bash + Coreutils, 15 Bytes

tr -d x$1<<<LEJ

Probieren Sie es online!

Ich möchte das weglassen x, aber dann tr -dwürde ein Argument fehlen, wenn die Eingabezeichenfolge leer war. (Das xschadet nicht, da im LEJ der Here-Zeichenfolge keine X enthalten sind.) Normalerweise würde ich schreiben tr -d "$1", aber so wie ich es getan habe, ist es ein Byte kürzer.

Mitchell Spector
quelle
Ich hatte die gleichen Gedanken - auch mit den Zitaten - sofort auch.
rexkogitans
6

Retina , 14 Bytes

Die Anzahl der Bytes setzt die Kodierung nach ISO 8859-1 voraus.

$
¶ABC
D`.
A1`

Probieren Sie es online!

Erläuterung

$
¶ABC

Fügen Sie eine zweite Zeile hinzu, die Folgendes enthält ABC.

D`.

Deduplizieren Sie die Zeichen. Dies löscht jedes Zeichen aus der zweiten Zeile, die bereits in der ersten Zeile erscheint.

A1`

Verwerfen Sie die erste Zeile.

Martin Ender
quelle
Wie genau funktioniert der 1`Teil der Antigrep-Phase?
Kritixi Lithos
@KritixiLithos Die Zahlen in der Konfigurationszeichenfolge sind Grenzwerte. 1bedeutet im Allgemeinen "nur einmal X tun". Wie genau die Grenzwerte funktionieren (dh was X ist), hängt vom verwendeten Bühnentyp ab. Bei Antigrep-Stufen prüft Retina zunächst, welche Zeilen mit dem regulären Ausdruck übereinstimmen (hier jede Zeile, da der reguläre Ausdruck leer ist), dann bedeutet das Limit "nur die erste übereinstimmende Zeile verwerfen". In ähnlicher Weise würde es bedeuten, "nur die erste übereinstimmende Zeile zu behalten", wenn es eine Grep-Stufe wäre. Die Semantik aller Limits finden Sie im Wiki .
Martin Ender
6

05AB1E , 6 4 Bytes

2 Bytes mit dem neuen žRBefehl gespeichert, wie von Kevin Cruijssen vorgeschlagen

žRsм

Probieren Sie es online! oder als Test Suite

Erläuterung

   м  # remove the character of
  s   # the input
žR    # from the string "ABC"
Emigna
quelle
Sollte eine Eingabe von nur nicht Jzurückkehren EL, LE?
Magic Octopus Urn
2
Nett! Genau wie ein FYI können auch Eingaben als dargestellt werden """{input}""", was auch für leere Strings funktioniert :).
Adnan
@carusocomputing: Es kann entweder zurückgeben (in diesem Fall wird zurückgegeben LE).
Emigna
1
Kann jetzt 4 Bytes sein
Kevin Cruijssen
1
@Emigna Tbh nein. Ich denke, es wurde vielleicht wegen dieser Herausforderung hinzugefügt, aber ich persönlich habe es vorher nicht benutzt.
Kevin Cruijssen
5

Java 7, 73 58 Bytes

String c(String s){return"EJL".replaceAll("[ "+s+"]","");}

Dank @KritixiLithos werden 15 Bytes eingespart .

Testcode:

Probieren Sie es hier aus.

class M{
  static String c(String s){return"EJL".replaceAll("[ "+s+"]","");}

  public static void main(final String[] a) {
    System.out.print("LEJ=" + c("LEJ") + "; ");
    System.out.print("LJE=" + c("LJE") + "; ");
    System.out.print("EJL=" + c("EJL") + "; ");
    System.out.print("ELJ=" + c("ELJ") + "; ");
    System.out.print("JLE=" + c("JLE") + "; ");
    System.out.print("JEL=" + c("JEL") + "; ");
    System.out.print("LE=" + c("LE") + "; ");
    System.out.print("LJ=" + c("LJ") + "; ");
    System.out.print("EJ=" + c("EJ") + "; ");
    System.out.print("EL=" + c("EL") + "; ");
    System.out.print("JL=" + c("JL") + "; ");
    System.out.print("JE=" + c("JE") + "; ");
    System.out.print("L=" + c("L") + "; ");
    System.out.print("E=" + c("E") + "; ");
    System.out.print("J=" + c("J") + "; ");
    System.out.print("\"\"=" + c(""));
  }
}

Ausgabe:

LEJ=; LJE=; EJL=; ELJ=; JLE=; JEL=; LE=J; LJ=E; EJ=L; EL=J; JL=E; JE=L; L=EJ; E=JL; J=EL; ""=EJL
Kevin Cruijssen
quelle
1
Können Sie "["+s+"]"anstelle von tun s.replaceAll("(.)","$1|")?
Kritixi Lithos
@KritixiLithos Smart. Es schlägt für den leeren String fehl, aber durch Hinzufügen eines Leerzeichens (oder eines anderen Zeichens, das nicht vorhanden ist EJL) funktioniert es wieder, was immer noch viel kürzer ist. :)
Kevin Cruijssen
5

Pyth, 5 Bytes

-"ABC

Teste es hier

Erweitert sich zu

-"ABC"Q
-       # Filter on absence
 "ABC"  # Literal string 
      Q # Input
Stange
quelle
abc kann geschrieben werden als<G3
Maltysen
@Maltysen ja Muddyfish verwendet, aber es ist trotzdem Kleinbuchstaben = \
Rod
4

MATL, 10 8 Bytes

Zwei Bytes gespart dank Suever. setdiffist kürzer als ismember.

'ABC'iX-

Probieren Sie es hier aus!

Erläuterung

'ABC'      % Create a string literal
     i     % User input
      X-   % Set difference, between two elements of the stack 

Ja, dies mag eine triviale Aufgabe gewesen sein, aber ich bin sehr zufrieden, dass ich es geschafft habe, sie mit MATL ganz alleine zu lösen. Ich habe nie gesagt, dass es die kürzeste Lösung ist ... Danke, Suever!

Stewie Griffin
quelle
4

JavaScript ES6, 41 39 38 Bytes

s=>eval(`'ABC'.replace(/[${s}]/g,'')`)

2 Bytes dank Arnauld gespeichert. Dank LarsW 1 Byte gespeichert.

f=s=>eval(`'ABC'.replace(/[${s}]/g,'')`)

console.log(f("AB"));

Tom
quelle
Ich bin auf dem Handy, kann also meinen Code nicht testen, aber ich denke, das sollte funktionieren:s=>eval`'ABC'.replace(/[${s}]/g,'')`
LarsW
Gute Arbeit! In der Lage zu sagen , .join``erspart Ihnen zwei Zeichen über die Lösung , die ich mit hatte kommen: f=s=>"ABC".replace(RegExp(`[${s}]`,'g'),"").
nnnnnn
1
@LarsW Dieser genaue Code schien nicht zu funktionieren, aber das Hinzufügen von Klammern um die Vorlagenzeichenfolge hat ein Byte gespeichert. Vielen Dank!
Tom
3

V , 10 Bytes

CLEJ<ESC>Ó[<C-r>"]

Probieren Sie es online!

Hexdump:

00000000: 434c 454a 1bd3 5b12 225d                 CLEJ..[."]

Erläuterung

Die Eingabe erfolgt in der ersten Zeile des Puffers. Also so etwas wie:

EL

und der Cursor befindet sich auf dem ersten Zeichen. Also löschen wir den Eingang (der ihn im Register speichert ") und gehen gleichzeitig mit in den Einfügemodus C.

Sobald LEJich mich im Einfügemodus befinde, werden die Zeichen eingefügt. Danach kehre ich mit in den normalen Modus zurück <ESC>.

Jetzt müssen wir alle Zeichen entfernen, die in der Eingabe vorhanden sind.

Ó                       " remove every
 [<C-r>"]               "  character that appears in the input
                        " synonym of Vim's :s/[<C-r>"]//g

Und sobald dies passiert ist, verbleiben die restlichen Buchstaben im Puffer.

Kritixi Lithos
quelle
3

Ruby, 27 19 18 Bytes

->s{"ABC".tr s,""}

-1 Byte dank Martin Ender

GB
quelle
3

Haskell , 27 26 Bytes

import Data.List
("ABC"\\)

Probieren Sie es online! Verbrauch: ("ABC"\\) "CB"Erträge "A".

\\ist der gesetzte Differenzoperator, die Klammern bilden einen sogenannten Abschnitt, der eine Kurzform für das Lamda ist(\x -> "ABC" \\ x) .


Ohne Import: (gleiche Byteanzahl dank @nimi)

f x=[c|c<-"ABC",all(/=c)x]

Probieren Sie es online! Verbrauch: f "CB"Erträge"A" .


Andere Ansätze:

f x=filter(`notElem`x)"ABC"
(`filter`"ABC").flip notElem
f x=[c|c<-"ABC",notElem c x]
Laikoni
quelle
1
Ich hoffe, (\\)dass wir bald zu Prelude wechseln.
theonlygusti
@theonlygusti Ich hoffe, es wird nicht; Dies ist keine wirklich sinnvolle Operation für Listen (zumindest nicht, wenn Sie nicht ausdrücklich angeben, dass Sie die Liste als gesetzt haben möchten). Die Standardoperation für diese Aufgabe sollte lauten Data.Set.difference.
aufgehört, gegen den Uhrzeigersinn
@ceasedtoturncounterclockwis warum ist es nicht sinnvoll? Außerdem ist der einzige Grund, warum ich möchte, dass es verschoben wird, dass es häufig nützlich ist.
theonlygusti
1
@theonlygusti Es ist nicht sinnvoll, wenn Sie feststellen, dass Sie die falsche Datenstruktur verwenden. Listen können doppelte Elemente und eine Reihenfolge haben, und sie können träge aufgebaut sein (sogar unendlich). (\\)respektiert nichts davon. Datentypen, die für dieses Verhalten vorgesehen sind, weisen eine Struktur auf, die sie im Allgemeinen effizienter, sicherer (da keine möglichen Annahmen zu Stabilität usw. verletzt werden können) und komfortabler macht.
aufgehört, gegen den Uhrzeigersinn
@ceasedtoturncounterclockwis was, ja es tut. "Die erste Instanz von ...", aber nvm
theonlygusti
3

GNU sed , 34 29 Bytes

Beinhaltet +1 für -r

-5 dank Digital Trauma

s/^/ABC/
:
s/(.)(.*)\1/\2/
t

Probieren Sie es online!

Aus irgendeinem Grund funktioniert TIO nicht mit Extended Regex ( -r), daher musste ich es in BASH packen.


s/^/ABC/        # put ABC at the beginning of the string
:               # nameless label
s/(.)(.*)\1/\2/ # remove a duplicate letter
t               # branch to the nameless label if something changed
Riley
quelle
Die Zeilenumbrüche -nund Psind unnötig. Sie können dies auch in bash packen, damit es in TIO funktioniert. Keine Ahnung warum -rnicht funktioniert. tio.run/nexus/bash#DcmxDYAwDATA/qdIR4JELCjp7F8jooIFCPubb@/…
Digitales Trauma
@DigitalTrauma Danke! Ich dachte, es würde Zeichen neben A, B und C geben, als ich das schrieb.
Riley
3

Brain-Flak , 120 + 3 = 123 Bytes

<>((((((((()()){}){}){}){}){}())())())<>{({}(<()>)){(([({})]<>({}))){(<({}<>{})<>([{}]{}<>)>)}{}}{}{}<>{}{({}<>)<>}{}}<>

Es wird mit dem -cFlag ausgeführt und fügt 3 Bytes hinzu

Probieren Sie es online!

Erläuterung

Insgesamt setzt dieses Programm so ziemlich den rechten Stapel minus den linken Stapel, auf den der rechte Stapel initialisiert ist CBA und der linke Stapel auf die Eingabe initialisiert wird.

Kommentierter Code

<>((((((((()()){}){}){}){}){}())())())<> # Switch to right stack, push CBA, switch back
{({}(<()>)){(([({})]<>({}))){(<({}<>{})<>([{}]{}<>)>)}{}}{}{}<>{}{({}<>)<>}{}}<>

Weitere Erklärung zu kommen ...

0 '
quelle
2

Mathematica, 37 Bytes

Complement@@Characters@{"ABC",#}<>""&
Martin Ender
quelle
Gibt es einen Grund, warum Sie hier Zeichenfolgen anstelle von Zeichenlisten verwendet haben?
Greg Martin
@ GregMartin Gewohnheit, denke ich
Martin Ender
nur, dass ich denke, es kommt kürzer, wenn Sie vermeiden könnenCharacters
Greg Martin
2

Karotte , 15 Bytes, nicht konkurrierend

Nicht konkurrierend wegen eines Fehlers, den ich bei der Rückgabe von Übereinstimmungen und leeren Zeichenfolgen gefunden habe. Also habe ich es einfach behoben

ABC^//[^#]/gS""

Probieren Sie es online! (Kopieren Einfügen)

Erläuterung

ABC^                   //sets stack (just a string, not an array) to "ABC"
    /                  //return match(es) of:
     /[^#]/g           // `#` is the placeholder for the input
                       // so effectively, this returns the matches of any character not present in the input
                       // applied on the stack
                       //this returns an array of all the matches of the regex
            S""        //join all the elements of the array using "", the empty string
Kritixi Lithos
quelle
2

Oktave, 29 27 Bytes

Dank Suever konnten zwei Bytes gespart werden, indem die Zeichenfolge 'ABC'innerhalb des ismemberAufrufs erstellt wurde.

@(s)x(~ismember(x='ABC',s))

Wir verwenden ~ismember()als logische Indizes für die Variable x. Die eigentümliche Sache ist, wir erschaffen im x='ABC' Inneren ismember , nicht davor. Die Reihenfolge Octave sieht so aus:

@(s)                        % Anonymous function that takes a string s as input
                x='ABC'     % Create a variable x with the characters 'ABC'
       ismember(x='ABC',s)  % True for elements that are in both x and s. False otherwise.
      ~ismember(x='ABC',s)  % Negate this, so that we keep the characters that aren't in s
@(s)x(~ismember(x='ABC',s)) % Use the logical vector as indices to x and return the result
Stewie Griffin
quelle
2

C #, 50 Bytes 32 Bytes 47 Bytes 35 Bytes

Wo iist die Eingabe:

i=>string.Join("","ABC".Except(i));

Vollständige App in LINQPad getestet

void Main()
{
    var testcases = new Dictionary<string,string[]>
    {
        ["ABC"] = new[]{""},
        ["ACB"] = new[]{""},
        ["BCA"]  = new[]{""},
        ["BAC"]  = new[]{""},
        ["CAB"]  = new[]{""},
        ["CBA"]  = new[]{""},
        ["AB"] = new[]{"C"},
        ["AC"] = new[]{"B"},
        ["BC"] = new[]{"A"},
        ["BA"] = new[]{"C"},
        ["CA"] = new[]{"B"},
        ["CB"] = new[]{"A"},
        ["A"] = new[]{"BC","CB"},
        ["B"] = new[]{"CA","AC"},
        ["C"] = new[]{"AB","BA"},
        [""] = new[]{"ABC","ACB","BCA","BAC","CAB","CBA"},
    };

    var output = "";

    foreach(var input in testcases.Keys)
    {
        var expect = testcases[input];
        var actual = GetResult(input);
        if(!expect.Contains(actual)) throw new ApplicationException($"{input}:{string.Join(",",expect)}:{actual}");
        output+=$"{input} -> {actual}\n";
    }
    output.Dump();
}

// Define other methods and classes here
private string GetResult(string input){
    return string.Join("","ABC".Except(i));
}

Testergebnisse

ABC ->
ACB ->
BCA ->
BAC ->
CAB ->
CBA ->
AB -> C
AC -> B
BC -> A
BA -> C
CA -> B
CB -> A
A -> BC
B -> AC
C -> AB
-> ABC

Michael Coxon
quelle
1
Das ist keine gültige Antwort, es muss eine Funktion oder ein Programm sein, kein Code-Snippet.
theonlygusti
Ah. Mein Fehler. Erster Timer hier. Also brauche ich den Print-Teil?
Michael Coxon
@MichaelCoxon: Sie müssen entweder den Eintrag in ein gesamtes Programm vornehmen, das kompiliert (nicht in C # empfohlen, es hat viel Boilerplate), oder in eine Funktion, die mehrfach aufgerufen werden kann. im Moment ist es nur eine Aussage. In C # ist es fast immer am einfachsten, eine Funktion daraus zu machen, indem ein Lambda erstellt wird, das Eingaben über seine Argumente entgegennimmt und über seinen Rückgabewert zurückgibt.
string.Join("",...)-> string.Concat(...)Spart 1 Byte
Verkörperung der Ignoranz
1

APL, 7 Bytes

'ABC'∘~

~Ist die Subtraktion gesetzt, wird komponiert. Dies ist eine Funktion, die ABCminus der Zeichen in ihrer Eingabe zurückgibt .

Marinus
quelle
1

Qualle , 9 Bytes

PNI
 "ABC

Probieren Sie es online!

In konventioneller Notation übersetzt dieses Programm:

P(N("ABC", I))

Iist die Eingabe, Nist Listendifferenz und Pwird ausgegeben.

Martin Ender
quelle
1

Perl 5.9.9 79 38 37 35 Bytes

perl -le '$_="ABC";eval"y/$ARGV[0]//d";print'

(Ich bin mir der Zählregeln hier nicht sicher - habe Schalter enthalten, aber nicht den Perl-Befehl).

> perl -le '$_="ABC";eval"y/$ARGV[0]//d";print' AB
C
> perl -le '$_="ABC";eval"y/$ARGV[0]//d";print'
ABC

(Angepasste Zählungen nach dem Kommentar unten)

Tom Tanner
quelle
Funktioniert das für leere Eingaben?
Titus
Jetzt habe ich den Transkriptionsfehler behoben (hatte "..", {,,} hier eingegeben ...)
Tom Tanner
Ihr Code ist 35 Byte lang. (34 +1 für die -lFlagge). :)
Paul Picard
Vielen Dank. Das -l dient der Prettifizierung (wie in einer neuen Zeile am Ende der Ausgabe). Ich war mir nicht sicher, ob das nach den Wettbewerbsregeln notwendig war.
Tom Tanner
Mit 5.14+ können Sie perl -pe'$_=eval"ABC=~y/$_//dr"'nur 23 Bytes (22 + 1 für -p) ausführen .
ThisSuitIsBlackNot
1

Common Lisp, 71 Bytes

Der derzeit größte Eintrag, aber zumindest lesbar ;-)

(lambda(s)(coerce(set-difference'(#\A #\B #\C)(coerce s'list))'string))
Core-Dump
quelle
1

Japt , 13 12 Bytes

"ABC"r"[{U}]

Dank ETHproductions ein Byte gespart.

Probieren Sie es online!

Tom
quelle
Schön, danke, dass du Japt benutzt! Sie können das nachfolgende Anführungszeichen entfernen, um ein Byte zu speichern.
ETHproductions
1

Pyth, 4 Bytes

-<G3

Probieren Sie es hier aus!

 <G3 -  alphabet[:3]
-    - input-^

Beachten Sie, dass Kleinbuchstaben verwendet werden, die möglicherweise nicht akzeptiert werden

Blau
quelle
1

C 53 Bytes

b=64;c(char*a){while(b<67)putchar(++b*!strchr(a,b));}

Wenn implizite Deklarationen von string.h nicht zulässig sind, 72 Byte hinzugefügt werden#include<string.h>

Probieren Sie es online!


oder etwas mehr Spaß bei 75 Bytes

a[128]={};b=64;c(char*d){while(*d)++a[*d++];while(b<67)putchar(b*!a[++b]);}

Probieren Sie es online!

Ahemone
quelle
52 Bytes
Ceilingcat
1

Batch, 101 Bytes

@set/ps=
@for %%c in (L E J)do @call set d=%%s:%%c=%%&call:c %%c
:c
@if "%d%"=="%s%" set/pd=%1<nul

Übernimmt die Eingabe in STDIN, was bedeutet, dass sie %1leer ist, wenn der Code in die Hilfsunterroutine gelangt und nichts gedruckt wird.

Neil
quelle
1

R , 47 40 Bytes

gsub(paste0("[",scan(,""),"]"),"","ABC")

Probieren Sie es online!

Ersetzt alle Buchstaben in der Eingabezeichenfolge durch die leere Zeichenfolge.

BLT
quelle