작업
이 도전에서, 당신의 임무는 입력 문자열의 첫 문자와 마지막 문자가 같은지 여부에 따라 문자열을 가져 와서 참 또는 거짓 값을 출력하는 프로그램이나 함수를 작성하는 것입니다.
입력
합리적인 방법으로 입력을받을 수 있습니다. 그러나 입력이 사전 정의 된 변수에 있다고 가정하는 것은 허용되지 않습니다. 파일, 콘솔, 명령 행, 입력 필드 등에서 읽거나 함수 인수로 입력하는 것이 허용됩니다.
산출
결과를 변수에 할당하는 것을 제외하고는 합리적인 형식으로 출력 할 수 있습니다. 파일, 콘솔, 명령 행, 모달 박스, 함수 return
명령문 등에 쓸 수 있습니다.
추가 규칙
-
입력 값도 비어있을 수 있으며, 잘못된 값을 반환해야합니다.
-
단일 문자 입력 문자열은 확실한 결과를 가져야합니다.
-
프로그램은 대소 문자를 구분해야합니다.
helloH
잘못된 값을 출력해야합니다. -
단일 Truthy 값과 단일 Falsey 값만 가질 수 있습니다. 예를 들어,
false
입력 문자열 및0
다른 입력 문자열을 Falsey 값으로 출력 할 수 없습니다. -
표준 허점 은 허용되지 않습니다.
테스트 사례
Input -> Output
"10h01" Truthy
"Nothing" Falsey
"Acccca" Falsey
"wow!" Falsey
"wow" Truthy
"H" Truthy
"" Falsey
이것은 code-golf 이므로 바이트 단위의 가장 짧은 코드가 이깁니다!
답변
답변
파이썬 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
답변
답변
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);
}