시작이 끝과 같습니까? 읽거나 함수 인수로 입력하는 것이 허용됩니다. 산출 결과를

작업

이 도전에서, 당신의 임무는 입력 문자열의 첫 문자와 마지막 문자가 같은지 여부에 따라 문자열을 가져 와서 참 또는 거짓 값을 출력하는 프로그램이나 함수를 작성하는 것입니다.

입력

합리적인 방법으로 입력을받을 수 있습니다. 그러나 입력이 사전 정의 된 변수에 있다고 가정하는 것은 허용되지 않습니다. 파일, 콘솔, 명령 행, 입력 필드 등에서 읽거나 함수 인수로 입력하는 것이 허용됩니다.

산출

결과를 변수에 할당하는 것을 제외하고는 합리적인 형식으로 출력 할 수 있습니다. 파일, 콘솔, 명령 행, 모달 박스, 함수 return명령문 등에 쓸 수 있습니다.

추가 규칙

  • 입력 값도 비어있을 수 있으며, 잘못된 값을 반환해야합니다.

  • 단일 문자 입력 문자열은 확실한 결과를 가져야합니다.

  • 프로그램은 대소 문자를 구분해야합니다. helloH잘못된 값을 출력해야합니다.

  • 단일 Truthy 값과 단일 Falsey 값만 가질 수 있습니다. 예를 들어, false입력 문자열 및 0다른 입력 문자열을 Falsey 값으로 출력 할 수 없습니다.

  • 표준 허점 은 허용되지 않습니다.

테스트 사례

Input    ->    Output

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

이것은 이므로 바이트 단위의 가장 짧은 코드가 이깁니다!



답변


답변

파이썬 3 , 23 바이트

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

출력은 종료 코드를 통해 이루어 지므로 0 (성공)은 정확하고 1 (실패)은 거짓입니다. 경우 허용하는 바이트를 저장할 수 있습니다.

온라인으로 사용해보십시오!

작동 원리

경우 우선, s는 빈 문자열, s[0]올릴 것이다 IndexError를 실패 할 프로그램을 일으키는.

비어를 들어 첫 번째와 마지막 문자가 동일한 경우, s[0]!=s[-1]로 평가됩니다 거짓 프로그램이 종료 너무 깨끗하게 즉시.

마지막으로, 문자가 다르면 True로s[0]!=s[-1] 평가되어 비교 가 수행됩니다. e 가 정의되어 있지 않기 때문에 NameError가 발생 합니다.s[-1]<e

Python 2와의 하위 호환성이 필요하지 않은 경우

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

문자열을 정수와 비교하면 TypeError 가 발생하기 때문에 작동합니다 .


답변

자바 스크립트, 19 바이트

a=>a.endsWith(a[0])

답변

Mathematica, 15 바이트

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

문자 배열을 취합니다. 입력이 비어 있지만 무시할 수 있으면 오류가 발생합니다.


답변

05AB1E , 4 바이트

S¬Q¤

온라인으로 사용해보십시오! 또는 모든 테스트를 시도

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

답변

망막 , 13 12 바이트

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

온라인으로 사용해보십시오! 테스트 스위트를 포함합니다. 편집 : @ Kobi 덕분에 1 바이트가 절약되었습니다.


답변

C ++, 39 바이트

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

전체 프로그램 :

#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);
}

온라인으로 사용해보십시오