Ist der Anfang gleich dem Ende?

36

Die Aufgabe

In dieser Herausforderung besteht Ihre Aufgabe darin, ein Programm oder eine Funktion zu schreiben, die einen String aufnimmt und einen Wahrheits- oder Falschwert ausgibt, je nachdem, ob das erste Zeichen und das letzte Zeichen des Eingabe-Strings gleich sind.

Eingang

Sie können Eingaben auf jede vernünftige Weise vornehmen. Unter der Annahme, dass die Eingabe in einer vordefinierten Variablen vorhanden ist, ist dies jedoch nicht zulässig. Das Lesen aus einer Datei, einer Konsole, einer Befehlszeile, einem Eingabefeld usw. oder die Eingabe als Funktionsargument ist zulässig.

Ausgabe

Sie können in jedem vernünftigen Format ausgeben, mit Ausnahme der Zuweisung des Ergebnisses zu einer Variablen. Das Schreiben in eine Datei, eine Konsole, eine Befehlszeile, eine modale Box, Funktionsanweisungen returnusw. ist zulässig.

Zusätzliche Regeln

  • Die Eingabe kann auch ein leerer String sein, für den Sie einen falschen Wert zurückgeben sollten.

  • Single-Char Input Strings sollten ein echtes Ergebnis haben.

  • Ihr Programm sollte zwischen Groß- und Kleinschreibung unterscheiden. helloHsollte einen Falsey-Wert ausgeben.

  • Sie können nur einen einzigen Wahrheitswert und einen einzigen Falsey-Wert haben. Beispielsweise ist die Ausgabe falsefür eine 0Eingabezeichenfolge und für eine andere Eingabezeichenfolge als False-Werte nicht zulässig.

  • Standardlücken sind nicht erlaubt.

Testfälle

Input    ->    Output

"10h01"        Truthy
"Nothing"      Falsey
"Acccca"       Falsey
"wow!"         Falsey
"wow"          Truthy
"H"            Truthy
""             Falsey

Das ist , also gewinnt der kürzeste Code in Bytes!

Arjun
quelle
Welche Zeichen können in der Eingabe erscheinen? Druckbares ASCII?
Martin Ender
@MartinEnder Druckbares ASCII. Obwohl ich nicht denke, dass es wichtig ist.
Arjun
Natürlich ist es wichtig. Einige Sprachen können keine Nicht-ASCII-Zeichen oder Null-Bytes verarbeiten, und in einem regulären Ausdruck kann ich mit jedem druckbaren ASCII-Zeichen übereinstimmen ., aber es stimmt nicht mit Zeilenvorschüben überein. Wenn Sie das String- Tag verwenden, geben Sie im Allgemeinen genau an, welche Zeichen in der Eingabe angezeigt werden können.
Martin Ender
@MartinEnder Okay. Kümmert sich in Zukunft.
Arjun
Vorgeschlagener Testfall:AbAb => false
caird coinheringaahing 31.10.17

Antworten:

17

Python 3 , 23 Bytes

s=input()
s[0]!=s[-1]<e

Die Ausgabe erfolgt über den Exit-Code, daher ist 0 (Erfolg) wahr und 1 (Misserfolg) falsch. Wenn dies akzeptabel ist, kann ein Byte gespeichert werden.

Probieren Sie es online!

Wie es funktioniert

Wenn s eine leere Zeichenfolge ist, s[0]wird zunächst ein IndexError ausgelöst , wodurch das Programm fehlschlägt.

Wenn bei nicht leeren s das erste und das letzte Zeichen gleich sind, s[0]!=s[-1]wird False ausgewertet , sodass das Programm sauber und sofort beendet wird.

Wenn sich die Zeichen unterscheiden, s[0]!=s[-1]wird der Wert " True" ( Wahr) ausgewertet , wodurch der Vergleich s[-1]<edurchgeführt wird. Da e undefiniert ist, wird ein NameError ausgelöst .

Wenn keine Abwärtskompatibilität mit Python 2 gewünscht ist,

s[0]!=s[-1]<3

Funktioniert auch, da der Vergleich einer Zeichenfolge mit einer Ganzzahl einen TypeError auslöst .

Dennis
quelle
Speichern Sie 1 Byte mit Lambda
OldBunny2800
1
Ja, eine reguläre Funktion würde auch ein Byte speichern. Während die Ausgabe über den Exit-Code ein fester Konsens ist, ist dies bei einer Funktion nicht der Fall. Ich habe in meiner Antwort auf den Vorschlag verlinkt.
Dennis
Was ist mit Python REPL?
OldBunny2800
Ich denke nicht, dass das hilft. Es ist immer noch kein Exit-Code.
Dennis
9

JavaScript, 19 Bytes

a=>a.endsWith(a[0])
Bald Bantha
quelle
Wow. Ich wusste nicht einmal, dass es eine endsWithMethode für String-Objekte gibt. Nett! :)
Arjun
Wie habe ich vergessen endsWith()?! Ich habe auf eine Gelegenheit gewartet, sie zu nutzen.
Shaggy
7

Mathematica, 15 Bytes

#&@@#===Last@#&

Nimmt eine Reihe von Zeichen. Löst Fehler aus, wenn die Eingabe leer ist, aber ignoriert werden kann.

JungHwan min
quelle
4
Netter Job, der die Tatsache entdeckt, dass ===der leere Fall behandelt :)
Greg Martin
7

05AB1E , 4 Bytes

S¬Q¤

Probieren Sie es online! oder Probieren Sie alle Tests aus

S    # Split the input into individual characters
 ¬   # Get the first character
  Q  # Check all characters for equality to the first
   ¤ # Get the last value i.e. head == tail
Riley
quelle
1
ÂâćüQverwirrender sein und ein Byte gewinnen!
Magic Octopus Urn
ćsθQist ein weiterer 4-Byte.
Magic Octopus Urn
7

Retina , 13 12 Bytes

^(.)(.*\1)?$

Probieren Sie es online! Beinhaltet eine Testsuite. Bearbeiten: 1 Byte dank @Kobi gespeichert.

Neil
quelle
7

C ++, 39 Bytes

[](auto s){return s[0]&&s[0]==s.back();}

Vollständige Programme:

#include <string>
#include <iostream>

using namespace std;

int main()
{
    string t = "";
    auto f = [](auto s){return s[0]&&s[0]==s.back();};
    cout << f(t);
}

Probieren Sie es online aus

Johan du Toit
quelle
1
Ich bin nicht die beste in C ++ (I typischerweise C verwenden), aber könnten Sie die Instanzen ändern , s[0]um *szwei zu speichern Bytes jedes?
MD XF
1
@MDXF, das funktioniert nur mit Arrays vom Typ C.
Johan du Toit
6

Brachylog , 4 Bytes

h~t?

Probieren Sie es online!

Erläuterung

h       The head of the Input...
 ~t?    ...is the tail of the Input
Tödlich
quelle
1
Ich muss mich wirklich darum kümmern, diese Einschränkungsvariablen für die Eingabe zu implementieren. Das würde bedeuten, dass wir das in zwei Schritten schaffen könnten.
6

Java, 81.77 Bytes

  • -4 Bytes, danke @KevinCruijssen

Versuchen Sie es online

boolean f(String s){int l=s.length();return l>0&&s.charAt(l-1)==s.charAt(0);}
  • Returns , truewenn sie sind gleich, sonst false, falsefür leere Zeichenfolge

Array-Version, 60 Byte

boolean f(char[]s){int l=s.length;return l>0&&s[0]==s[l-1];}
Khaled.K
quelle
Warum lang statt int?
corvus_192
@ corvus_192 Ein Unicode-Zeichen kann 1-6 Byte lang sein.
Khaled.K
Der Unterschied zwischen zwei Zeichen kann höchstens Charcter.MAX_VALUE - Character.MIN_VALUE65535
corvus_192
@ corvus_192 Ich verstehe, ich habe es jetzt
behoben
1
@ KevinCruijssen Für die letzte, s.charAt(l-1)==s.charAt(0)würde zwei Bytes sparen.
JollyJoker
6

Python 2 , 26 25 24 Bytes

Vielen Dank an @Dennis für das Speichern eines Bytes!

lambda x:""<x[:1]==x[-1]

Probieren Sie es online!

Adnan
quelle
5

Brainfuck , 43 Bytes

+>,[<,[>[->+<<->],]]<[[-]-<]-[----->+<]>--.

Probieren Sie es online!

Erläuterung

Die Hauptschleife ist [>[->+<<->],]. Nach jeder Iteration ist die Zelle rechts von der aktuellen Position das erste Byte der Zeichenfolge, und die Zelle links ist die Differenz zwischen dem zuletzt verarbeiteten und dem ersten Zeichen. <[[-]-<]wandelt das Endergebnis in -1 um, wenn es nicht Null ist, und der Rest wandelt -1 und 0 in 48 und 49 ("0" bzw. "1") um.

Nitrodon
quelle
5

Haskell , 21 Bytes

cnimmt a Stringund gibt a zurück Bool.

c s=take 1s==[last s]

Probieren Sie es online!

  • Wenn nicht für leere Zeichenfolgen, könnte dies 16 Bytes mit gewesen sein c s=s!!0==last s.
  • take 1sGibt eine Liste aus, die nur das erste Element von ist, ssofern ses nicht leer ist. In diesem Fall ist es auch leer.
  • last s würde bei einer leeren Zeichenfolge einen Fehler machen, aber Haskells Faulheit speichert ihn: Eine Zeichenfolge mit einem einzelnen Element unterscheidet sich immer von der leeren Zeichenfolge, ohne dass das Element ausgewertet wird.
Ørjan Johansen
quelle
5

MATL, 5 Bytes

&=PO)

Probieren Sie es bei MATL Online!

Erläuterung

       % Implicitly grab input as a string (of length N)
&=     % Perform an element-wise equality check yielding an N x N matrix
P      % Flip this matrix up-down
O)     % Get the last value in the matrix (column-major ordering)
       % Implicitly display the result

In dem Fall, dass eine leere Eingabezeichenfolge behandelt werden muss, würde so etwas wie die folgenden (8 Bytes) funktionieren

&=POwhO)

Diese Lösung stellt a einfach vor 0die Vorderseite der N x N-Matrix, sodass für eine leere Eingabe, wenn die Matrix vorhanden ist 0 x 0, immer noch ein 0Wert vorhanden ist, der dann von übernommen wird0)

Probieren Sie es bei MATL Online aus

Suever
quelle
Sehr kluger Ansatz!
Luis Mendo
Auch 5 Bytes 5L)d~.
Sanchises
2
Nur ein Hinweis: Weder mein Kommentar noch Ihre Antwort behandeln leere Eingaben. Dies wurde (meiner Meinung nach überzeugend) in den Kommentaren abgelehnt, daher erwarte ich, dass sich diese Anforderung ändert. In der jetzigen Form ist dieser Eintrag jedoch ungültig.
Sanchises
1
(Natürlich können Sie auch tn?&=PO)}Fmit leeren Eingaben umgehen. Sie sind sich nicht sicher, ob es einen effizienteren Weg gibt.)
Sanchises,
4

Japt , 6 Bytes

tJ ¥Ug

Probieren Sie es online!

Luke
quelle
Hmm, funktioniert nicht für die leere Zeichenfolge (sollte geben false). Ich denke, Sie können dies mittJ ¥Ug
ETHproductions
4

APL (Dyalog) , 4 Bytes

⊃⌽=⊃

Probieren Sie es online!

Erläuterung

  =                     Compare
                       The first element of the right argument with
                       The right argument reversed
                        This will return an array of the length of the reversed argument. Each element in the resulting array will be either 0 or 1 depending on whether the element at that position of the reversed argument equals the first element of the original right argument
                        So with argument 'abcda', we compare 'a' with each character in 'adcba' which results in the array 1 0 0 0 1
                       From this result, pick the first element.

Hier ist der Grund, warum dies bei leeren Zeichenfolgen funktioniert. Das Anwenden auf eine leere Zeichenfolge gibt ein Leerzeichen zurück . Das Umkehren einer leeren Zeichenfolge gibt jedoch immer noch eine leere Zeichenfolge zurück. Wenn Sie also eine leere Zeichenfolge mit einer nicht leeren Zeichenfolge vergleichen (in diesem Fall ), erhalten Sie einen leeren numerischen Vektor. Und das Anwenden auf einen leeren numerischen Vektor gibt zurück 0. Das Übergeben einer leeren Zeichenfolge führt daher zu einer Rückkehr 0.

Kritixi Lithos
quelle
Das ist wirklich eine coole Antwort, aber deine Erklärung ist nicht richtig. Es wäre richtig für (⊃⌽)=⊃oder ⊢/=⊃, aber keines von beiden liefert das richtige Ergebnis. ⌽=⊃Vergleicht stattdessen die umgekehrte Zeichenfolge mit ihrem ersten Zeichen und wählt dann das erste Element davon aus. Wenn die Zeichenfolge leer ist, es endet , einen Raum zu einem leeren String zu vergleichen, die eine leere Boolesche Liste gibt, von denen die (dazu gezwungen) erste Element ist 0- die richtige Antwort für leere Strings. Ihr Ausdruck ist gleichbedeutend mit, ⊃⊃=⌽weil er =kommutativ ist.
Adám,
@ Adám Danke, dass du mir geholfen hast, den Fehler in meiner Erklärung zu erkennen.
Kritixi Lithos
Bitte. Jetzt ist Ihre Notiz nicht korrekt. ⊃⌽=⊃ist nicht dasselbe wie (⊃⌽)=⊃. Es ist teurer, da es alle Elemente vergleicht, anstatt nur das erste und das letzte. Auch würde es nicht funktionieren, wenn das OP Zahlen anstelle von Zeichenketten verwendet hätte.
Adám,
The first argument reversedThe right argument reversed
Adám
Vielleicht möchten Sie auch erklären, warum dies bei leeren Zeichenfolgen funktioniert.
Adám,
4

Java, 52 43 Bytes

s->!s.isEmpty()&&s.endsWith(""+s.charAt(0))

Um dies zu erreichen, geben Sie dies in eine Funktion wie die folgende ein, die ein Lambda "go" macht:

private static boolean f(Function<String, Boolean> func, String value) {
  return func.apply(value);
}

quelle
1
Sie können 9 Zeichen abrasieren mit s.endsWith(""+s.charAt(0))statts.charAt(0)==s.charAt(s.length()-1)
SpaceBison
s->""!=s&&s.endsWith(""+s.charAt(0))
JollyJoker
1
@ JollyJoker, der nicht funktioniert: Füttern Sie new String()den Lambda. Es wird eine Ausnahme auslösen. Referenzsemantik funktioniert hier nicht.
2
@KevinCruijssen Der Kurzschlusseffekt von && ist erforderlich, um eine Ausnahme für einen Index außerhalb der Grenzen für charAt (0) für eine leere Zeichenfolge zu vermeiden
PunPun1000
4

Ruby, 26 24 Bytes

Zwei Bytes dank @philomory gespart !

->e{!!e[0]>0&&e[0]==e[-1]}

Erster Beitrag über Codegolf -))

Marmelade
quelle
1
Willkommen bei PPCG!
Martin Ender
1
Willkommen bei PPCG! Schönes erstes Golf. Viel Glück für die Zukunft!
Arjun
1
Sie könnten 4 Bytes einsparen, indem Sie einfach tun e[0]&&e[0]==e[-1], da wenn eleer, e[0]wird Null sein. Eigentlich nilist es nicht gut , darüber nachzudenken, da es sich um Falschgeld handelt, aber nicht um dasselbe, das der Vergleich zurückgibt. Nach dem Hinzufügen !!werden immer noch 2 Zeichen gespeichert.
Philomory
3

PHP> = 7.1, 23 Bytes

Gibt 1 für gleich und nichts aus, wenn sich das Zeichen unterscheidet

<?=$argn[0]==$argn[-1];
Jörg Hülsermann
quelle
3

Schnell, 57 Bytes

var s=readLine()!,a=Array(s.characters);a[0]==a.last ?1:0
Leena
quelle
Bearbeitet den Code.
Leena
Willkommen bei PPCG! Ist der Raum danach a.lastnotwendig?
HyperNeutrino
Entweder kann ich Klammern um a.last oder nach a.last Leerzeichen einfügen
Leena
3

C #, 38 30 Bytes

s=>s!=""&&s[0]==s[s.Length-1];

8 Bytes dank @raznagul gespeichert.

TheLethalCoder
quelle
1
Anstatt die Länge zu überprüfen, svergleichen Sie es einfach mit "". Den ?:-Operator brauchst du auch nicht . Verwenden &&hat das gleiche Ergebnis.
Raznagul
@raznagul Gute Spots, danke, ich kann nicht prüfen, ob es im Moment funktioniert, also hoffentlich! Hätten Sie auch nicht &den gleichen Effekt?
TheLethalCoder
@TheLeathalCoder: Nein, &funktioniert einfach nicht. Mit &&dem zweiten Ausdruck wird nicht validiert, ob der erste Ausdruck falsch ist. Mit &der Sekunde wird der Ausdruck immer validiert und schlägt mit einem IndexOutOfRangeExceptionauf die leere Zeichenkette bezogenen Testfall fehl .
Raznagul
@raznagul Oh ja ... Gehirn Furz.
TheLethalCoder
Vielleicht ist es ein bisschen spät, aber Sie können 5 Bytes sparen, wenn Sie s.Last()stattdessen verwendens[s.Length-1]
Bojan B
3

R, 40 Bytes

function(x)x>""&&rev(y<-charToRaw(x))==y

Danke an Nitrodon für -2 Bytes.

Vielen Dank an MickyT für -8 Bytes.

Prüfung:

f=function(x)x>""&&rev(y<-charToRaw(x))==y
test <- c("10h01", "Nothing", "Acccca", "wow!", "wow", "H", "")
sapply(test, f)
all(sapply(test, f) == c(T, F, F, F, T, T, F))

Ausgabe:

> f=function(x)x>""&&rev(y<-charToRaw(x))==y
> test <- c("10h01", "Nothing", "Acccca", "wow!", "wow", "H", "")
> sapply(test, f)
  10h01 Nothing  Acccca    wow!     wow       H         
   TRUE   FALSE   FALSE   FALSE    TRUE    TRUE   FALSE 
> all(sapply(test, f) == c(T, F, F, F, T, T, F))
[1] TRUE
Djhurio
quelle
2
Sie können einen Satz Klammern mit entfernen rev(y<-el(strsplit(x,"")))==y.
Nitrodon
1
auch unbenannte funktionen sind akzeptabel, so dass du denf=
mickyt
1
und charToRaw können verwendet werden, um die Zeichenfolge zum Vergleich zu function(x)x>""&&rev(y<-charToRaw(x))==y
teilen
3

> <> , 39 33 Bytes

 2i&01. >~&-?v1v
  i:1+?!^01. >0>n;

Ich benutze zum ersten Mal> <> und spiele Codegolf, daher sind hilfreiche Vorschläge willkommen.

Der Code besteht aus drei grundlegenden Abschnitten.

2i&01. Pushes an arbitrary number (2 in this case, this causes an empty string to print 0) onto the stack and puts the input's first character in the register.

>i:1+?!^01. Main loop. Pushes the next character onto the stack. If the string has been read completely, then go to the last section

>~&-?v1v
     >0>n;  Compare the first and last characters. Print 1 if they're the same, 0 if not
AGourd
quelle
Hallo! Willkommen bei PPCG! Schönes erstes Golf! Viel Glück für die Zukunft! :)
Arjun
3

Google Sheets, 33 Bytes

Nimmt Eingaben von Zelle [A1]und Ausgaben 1für wahrheitsgemäße Eingaben und 0für falsche Eingaben.

=(A1<>"")*Exact(Left(A1),Right(A1

Es wird darauf hingewiesen, dass die Klammern in Exact(und Right(nicht geschlossen bleiben, da Google Sheets dies automatisch korrigiert, sobald der Benutzer den Formeltext eingegeben und die Eingabetaste gedrückt hat, um diese Zelle zu verlassen.

Ausgabe

GS Version

Taylor Scott
quelle
Ist die Version von Excel wichtig? In meinem Exemplar von 2013 schlägt dies fehl, weil Sie so nicht verwenden können &. Es gilt A=aauch als wahr. Der kürzeste, den ich bekommen kann, ist 38 Bytes: =AND(EXACT(LEFT(A1),RIGHT(A1)),A1<>"")oder die Alternative =IFERROR(CODE(A1)=CODE(RIGHT(A1)),1=0).
Ingenieur Toast
Ich habe es in Excel Online (16.0.9222.5051) ausprobiert und es wird TRUEfür jede fehlerfreie Eingabe zurückgegeben. ( Screenshot ) Funktioniert es in Ihrer Kopie für alle Testfälle? ExcelGuy hat eine Antwort , die aus den gleichen Gründen wie meine oben endet.
Ingenieur Toast
1
@EngineerToast du hast völlig recht, ich hätte *stattdessen &die binäre und die Anweisung verwenden sollen, aber das lässt immer noch das "A"="a"Problem, das ich völlig übersehen hatte. All das und ein paar Syntaxkorrekturen führen mich zu =EXACT(LEFT(A1),RIGHT(A1))*(A1<>"")35, aber ich habe die Sprache auf Google Sheets umgestellt, wodurch ich die doppelte Klammer des Terminals in der ExactAnweisung fallen ließ und =(A1<>"")*Exact(Left(A1),Right(A133 Bytes renderte
Taylor Scott
3

R, 50 43 41 40 64

Zweite Lösung mit 41 Bytes für eine aufrufbare Funktion - dank @ niczky12 & @ Giuseppe - geändert für x = ""

r=function(x,y=utf8ToInt(x))ifelse(x=="","FALSE",(y==rev(y))[1])

Zuerst mit 50 Bytes, aber nicht für die Herausforderung

function(x){charToRaw(x)[1]==rev(charToRaw(x))[1]}
Riccardo Camon
quelle
Sie können ersetzen charToRawmit utf8ToIntzu produzieren NAs , wenn die Zeichenfolge leer ist.
niczky12
Sie können auch die geschweiften Klammern {}um den Funktionskörper entfernen .
Giuseppe
Ich denke, (y==rev(y))[1]ist um ein Byte kürzer
Giuseppe
Diese Herausforderung erfordert nur die Verwendung eines Wahrheits- und eines Falsey-Werts, dies führt jedoch NAzu einer leeren Zeichenfolge, jedoch FALSEzu "ab". Probieren Sie es online! .
Ørjan Johansen
@ ØrjanJohansen danke für deinen Kommentar, also sollte "ab" nicht FALSE geben?
Riccardo Camon
2

Oktave, 16 Bytes

@(s)s(1)==s(end)

Es nimmt einen String sals Eingabe und vergleicht das erste s(1)mit dem letzten Element s(end).

Dies könnte sein , @(s)s(1)-s(end)wenn es in Ordnung zu tauschen ist true/falsezu false/true.

Stewie Griffin
quelle
2

GNU grep , 12 Bytes

^(.)(.*\1)?$

Im erweiterten oder PCRE-Modus ausführen.

Ich weiß nicht, ob dies als Betrug angesehen wird oder nicht.

eush77
quelle
Behandelt dies den leeren String-Fall?
klatschen
@ConfusedMr_C Ja, leere Zeichenfolge ⇒ Code 1.
eush77
2

JavaScript, 20 Bytes

Fügen Sie f=am Anfang und rufen Sie wie f(arg).

_=>_[0]==_.slice(-1)

f=_=>_[0]==_.slice(-1)

i.oninput = e => o.innerHTML = f(i.value);
<input id=i><pre id=o></pre>

Erläuterung

Diese Funktion nimmt ein Argument auf _. _[0]==_.slice(-1)Überprüft im Funktionskörper, ob das erste Element von _(am 0Index) dem letzten Element entspricht, und gibt den entsprechenden trueoder den falseBooleschen Wert zurück.

Arjun
quelle
2

Common Lisp, 83 74 61 58 Bytes

Original: 83 Bytes

Ich habe gerade angefangen, Common Lisp zu lernen, also habe ich das Gefühl, einen Putter auf eine Driving Range zu bringen. Hier muss eine Art rekursiver Makro-Assistenten oder Array-Manipulation möglich sein, die ich nicht sehe.

Dies ist eine anonyme Funktion, die eine Zeichenfolge als Eingabe akzeptiert:

(lambda (s) (let ((n (- (length s) 1))) (when (> n 0) (eq (char s 0) (char s n)))))

Schön gemacht:

(lambda (s)
  (let ((n (- (length s) 1)))
    (when (> n 0)
      (eq (char s 0)
          (char s n)))))

Würde gerne eine glattere Lösung sehen!

Revision 1: 74 Bytes

Muss ich lieben diese Standard-Bibliotheksfunktionen!

Hässlich:

(lambda (s) (when (> (length s) 0) (eq (elt s 0) (elt (reverse s) 0))))

Ziemlich:

(lambda (s)
  (when (> (length s) 0)
    (eq (elt s 0)
        (elt (reverse s) 0))))

Revision 1.5: 61 Bytes

Leerzeichen!

(lambda(s)(when(>(length s)0)(eq(elt s 0)(elt(reverse s)0))))

Revision 2: 58 Bytes

Hässlich:

(lambda(s)(and(>(length s)0)(not(mismatch s(reverse s)))))

Ziemlich:

(lambda (s)
  (and (> (length s) 0)
       (not (mismatch s (reverse s)))))

Das ist alles für jetzt! Ich denke, ich bin schon schlauer.

Shadowtalker
quelle
1
Schlagen ifstatt andund (mismatch(reverse s)s)statt(mismatch s(reverse s))
Ceilingcat
2

AWK, 29 34 Bytes

Dieser kann leicht schummeln, da AWK mit der folgenden Option aufgerufen werden muss:

`-F ''`

In GNU Awk können Sie die Langform-Synonyme verwenden:

`--field-separator=''`

Also habe ich der Gesamtsumme 5 Bytes hinzugefügt, um dies zu berücksichtigen.

Hässlich:

NR==1{a=$1}END{print(a==$NF)}

Ziemlich:

NR == 1
{
    a = $1
}

END
{
    print(a == $NF)
}
Shadowtalker
quelle
1
Ich glaube, die Regel ist, dass Sie Flags / Optionen verwenden können, aber Sie müssen sie in die Byteanzahl einschließen.
Ørjan Johansen