我前几天接受过编程面试,我需要在Perl中编写一段代码,并在标题中描述功能,过了一段时间,我想出了以下解决方案:
sub startWithUppercaseLetter {
return @_[0] =~ m/^[A-Z]/;
}
面试官似乎对此解决方案不满意,任何人都可以提供更好的解决方案吗?感谢
答案 0 :(得分:5)
我会写
sub starts_with_capital {
shift =~ /^[A-Z]/;
}
您自己的解决方案无法生效use warnings
,而
Scalar value @_[0] better written as $_[0]
在本地标识符中使用大写字母是不好的做法。
答案 1 :(得分:1)
我真的认为这不是一个好用的标题,因为你的正则表达式将返回空匹配或匹配(你想要什么作为要解决的问题的定义)。这个人也可以想象一遍又一遍地输入这个功能名称,以检查某些东西是否有资本。
在Perl中有很多方法可以做到。
return @_[0] if /^[A-Z]/;
return;
实际上不需要m,因为你只需要字符串的开头和任何新的行等,因为你只关心第一个字符的开始。你的方式,是的,可以有一个空的匹配并且工作相同;使其可以接受采访或提供两个例子:如上所述,然后是空手。