문자열 s
과 정수가 주어지면 th char in 이 end char in th 의 th 와 같은지에 n
대한 진실 / 거짓을 출력합니다 .n
s
n
s
입력
비어 있지 않은 문자열과 정수 0 기반 인덱싱 또는 1 기반 인덱싱을 사용할 수 있습니다. 정수는 문자열을 기반으로 유효한 것으로 보장됩니다. 예를 들어 문자열이 “supercalifragalistic123″인 경우 정수는 1 기반 색인의 경우 1-23이고 0 기반 색인의 경우 0-22 일 수 있습니다. 그주의 사항 n
의 절반 길이보다 클 수 있습니다 s
.
입력은 인쇄 가능한 ASCII로 제한됩니다.
산출
의 n
th 값 s
이의 n
마지막 값과 th 와 같은지 여부를 기반으로하는 참 / 거짓 값입니다 s
.
마지막 문자는 0 기반 색인의 경우 위치 0에 있고 1 기반 색인의 경우 위치 1에 있습니다. 문자열을 반대와 비교하는 것으로 생각하십시오.
테스트 사례
0 인덱스
"1", 0 Truthy 1 == 1
"abc", 1 Truthy b == b
"aaaaaaa", 3 Truthy a == a
"[][]", 1 Falsey ] != [
"[][]", 0 Falsey [ != ]
"ppqqpq", 2 Truthy q == q
"ababab", 5 Falsey a != b
"12345", 0 Falsey 1 != 5
"letter", 1 Truthy e == e
"zxywv", 3 Falsey w != x
1- 색인
"1", 1 Truthy 1 == 1
"abc", 2 Truthy b == b
"aaaaaaa", 4 Truthy a == a
"[][]", 2 Falsey ] != [
"[][]", 1 Falsey [ != ]
"ppqqpq", 3 Truthy q == q
"ababab", 6 Falsey a != b
"12345", 1 Falsey 1 != 5
"letter", 2 Truthy e == e
"zxywv", 4 Falsey w != x
답변
젤리 , 5 4 바이트
=UƓị
젤리에는 더 짧은 대답이 없어야합니다. 프로그램은 비교, 반전 / 음화, 인덱스 호출 및 제어 흐름 바이트 ( Ɠ
이 경우)를 필요로하므로 최대 4 바이트가 필요합니다.
작동 원리
=UƓị
- (implicit) input string
= - equals (vectorizing by characters because a string is a charlist)
U - the reversed string
ị - get the element at the index of:
Ɠ - the input index
@ ais523 덕분에 -1 바이트 Ɠ
답변
자바 스크립트 (ES6), 26 바이트
s=>n=>s[n]==s.substr(~n,1)
또는
s=>n=>s[n]==s.slice(~n)[0]
이것은 거의 작동하지만 n == 0
(왜냐하면 s.slice(-1,0) == ""
) 실패합니다 .
s=>n=>s[n]==s.slice(~n,-n)
@RickHitchcock이 지적한 또 다른 26 바이트 솔루션 :
s=>n=>s[n]==s[s.length+~n]
답변
MATL , 5 바이트
tP=w)
설명:
t % Duplicate the input
Stack:
['ppqqpq' 'ppqqpq']
P % Reverse the top element of the stack
Stack:
['ppqqpq' 'qpqqpp']
= % Equals. Push an array of the indices that are equal
Stack:
[[0 1 1 1 1 0]]
w % Swap the top two elements
Stack:
[[0 1 1 1 1 0], 3]
) % Grab the a'th element of b
답변
옥타브 , 22 바이트
@(s,n)s(n)==s(end-n+1)
또는 동일한 바이트 수 :
@(s,n)s(n)==flip(s)(n)
설명:
매우 간단합니다. 첫 번째는 문자열 s
과 정수 n
를 입력으로 받아 n 번째 요소 s(n)
와 “last-n + 1″요소가 같은지 점검합니다 .
두 번째 요소 s(n)
는 n 번째 요소를 s
반대로 n 번째 요소 와 비교합니다 .
답변
05AB1E , 7 5 바이트
Adnan 덕분에 -2 바이트
ÂøsèË
온라인으로 사용해보십시오! 또는 모든 테스트를 시도하십시오
 # Add a reversed copy on top of the original string
ø # Zip
sè # Extract the nth element
Ë # Check if they are equal
답변
답변
Alice , 24 바이트
/t.~e?/-mom
\I!RtI&1n;@/
입력은 한 줄의 문자열과 두 번째 줄의 숫자로 구성됩니다. 출력은 Jabberwocky
문자가 동일하고 그렇지 않은 경우입니다.
설명
이 프로그램은 주로 순서 모드에 있으며 하나의 명령은 기본 모드에 있습니다. 선형화 된 프로그램은 다음과 같습니다.
I.ReI&1m;mt!~t?&-no
I % Input first line
% STACK: ["ppqqpq"]
. % Duplicate top of stack
% STACK: ["ppqqpq", "ppqqpq"]
R % Reverse top of stack
% STACK: ["ppqqpq", "qpqqpp"]
e % Push empty string
% STACK: ["ppqqpq", "qpqqpp", ""]
I % Input next line
% STACK: ["ppqqpq", "qpqqpp", "", "3"]
& % (cardinal mode) Pop stack and repeat next command that many times
% STACK: ["ppqqpq", "qpqqpp", ""], ITERATOR: [3]
1 % Append "1" to top of stack
% STACK: ["ppqqpq", "qpqqpp", "111"]
m % Truncate so the top two strings on the stack have the same length
% STACK: ["ppqqpq", "qpq", "111"]
; % Discard top of stack
% STACK: ["ppqqpq", "qpq"]
m % Truncate again
% STACK: ["ppq", "qpq"]
t % Extract last character
% STACK: ["ppq", "qp", "q"]
! % Move top of stack to tape
% STACK: ["ppq", "qp"]
~ % Swap
% STACK: ["qp", "ppq"]
t % Extract last character
% STACK: ["qp", "pp", "q"]
? % Copy data from tape onto top of stack
% STACK: ["qp', "pp", "q", "q"]
& % Iterator: effectively a no-op in ordinal mode when the top of the stack is a 1-character string
% STACK: ["qp", "pp", "q"], ITERATOR: ["q"]
- % Remove occurrences: here, result is "" iff the characters are equal
% STACK: ["qp", "pp", ""]
n % Logical Not (for a consistent truthy value)
% STACK: ["qp", "pp", "Jabberwocky"]
o % Output top of stack