【发布时间】:2018-10-10 13:42:29
【问题描述】:
我已经看到了一种测试字符串是否为 pangram 的方法——一个包含字母表中每个字母的句子——但我不太明白。我想知道为什么我的方法行不通。
def is_pangram(string)
alpha = ("a".."z").to_a
i = 0
while i < string.length
if string.downcase[i] == alpha.any?
alpha.delete(string.downcase[i])
end
i += 1
end
if alpha.length > 0
puts "This string is not a pangram"
else
puts "This string is a pangram"
end
puts alpha.length
puts alpha
end
is_pangram("The quick brown fox jumps over the lazy dog")
【问题讨论】:
-
问题出在这里:
string.downcase[i] == alpha.any?LHO 是一个字母,而alpha.any?返回布尔值,表示数组是否为空。这个条件永远不会满足。应该是alpha.include?(string.downcase[i])。 -
@Aleksei,你做了什么?当然,您必须认识到,我过去提到的“mudsie”现在会遭到空洞的注视! (读者:直到最近,Aleksei 使用 SO 用户名“mudasobwa”。)
-
@Cary 如果你继续称我为 mudsie,我将不胜感激,我绝对喜欢它。