在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")
。