【发布时间】:2015-01-21 14:17:21
【问题描述】:
CoderByte 提供了以下挑战:“使用 Ruby 语言,让函数 WordCount(str) 接受传递的 str 字符串参数并返回字符串包含的单词数(即“从不吃碎小麦”将返回 4 )。单词将由单个空格分隔。"
我解决了,但有没有更简单的解决方案(不使用正则表达式或 .length 以外的方法)?我在for循环内部的for循环内部有一个条件内部。我还在第一个 for 循环的内部和外部将当前变量设置为 false。
这些都是不好的做法吗?有更好的解决方案吗?
def WordCount(string)
alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
counter = 0
current = false
for i in 0...string.length
prev = current
current = false
for j in 0...alphabet.length
if string[i] == alphabet[j]
current = true
if prev == false
counter += 1
end
end
end
end
return counter
end
WordCount(STDIN.gets)
【问题讨论】:
-
你应该在CodeReview问这样的问题。
-
我将在那里发布任何关于最佳实践的未来问题(当然是非一般性的)。谢谢。
-
Code Review 不是关于最佳实践,而是关于改进运行代码。 Software Engineering 是询问最佳实践的地方。
标签: ruby word-count