Nim 언어에서는 식별자를 구별하는 규칙 이 대부분의 다른 언어보다 약간 완화 됩니다. 다음 규칙 을 따르는 경우 두 식별자가 동일하거나 동일한 변수를 처리합니다 .
- 두 문자의 첫 문자 는 동일합니다 (대소 문자 구분)
- 두 문자열이 동일 (경우 에 구분) 제거한 후 모든 인스턴스 문자를
-
하고_
도전
Nim 식별자를 나타내는 두 개의 문자열 을 사용 하는 프로그램 / 함수 를 작성하고 위의 규칙 과 같은지 여부에 따라 진실 또는 거짓 값을 출력하십시오 .
명세서
- 표준 I / O 규칙이 적용됩니다 .
- 표준 허점 은 금지되어 있습니다.
- 문자열 에는 ASCII 인쇄 가능 파일 만 포함 됩니다 . 당신은 하지 않는 유효한 식별자인지 확인해야합니다.
- 문자열은 두 개의 개별 입력, 문자열 목록 등으로 간주 될 수 있습니다 (드릴을 알고 있음).
- 빈 문자열을 처리 할 필요가 없습니다 .
- 결과 는 진실과 거짓 값 모두에 일관성이 있어야 합니다.
- 이 과제는 모든 언어에서 가장 짧은 방법을 찾는 것이 아니라 각 언어에서 가장 짧은 방법을 찾는 것입니다 .
- 달리 지정하지 않는 한 코드는 일반적으로 인코딩 UTF-8 에서 바이트 단위 로 점수 가 매겨 집니다.
- 이 작업을 수행하는 내장 기능은 허용 되지만 내장 기능에 의존하지 않는 솔루션을 포함하는 것이 좋습니다.
- "실제적인"언어에 대한 설명도 권장 됩니다.
테스트 사례
Input Output
count, Count falsey
lookMaNoSeparator, answer falsey
_test, test falsey
test, tset falsey
aVariableName, a_variable_name truthy
numbers_are_cool123, numbersAreCool123 truthy
symbolsAre_too>_>, symbols_areTOO>> truthy
비 골격 참조 구현
이것은 Nim 자체로 작성되었습니다.
import strutils, re
proc sameIdentifier(a, b: string): bool =
a[0] == b[0] and
a.replace(re"_|–", "").toLower == b.replace(re"_|–", "").toLower
f("test", "tset")
하나의 답변이 예상치 못한 결과를 가져 온다고 생각 하므로을 추가하는 것이 좋습니다 .
>
?
f("_test", "test")
.