本论坛中是否有人尝试解决 ACM 编程问题http://acm.mipt.ru/judge/problems.pl?browse=yes&problem=024?这是 ACM MIPT 中较简单的问题之一,目标是评估由 +、-、* 和括号组成的表达式。尽管看起来很简单,但我的解决方案仍然无法被接受,显然是因为其中一个测试用例表达式有一个未在问题中说明的运算符。我什至添加了对除法 ('/') 的支持,但这也无济于事。关于需要支持哪些其他运营商的任何想法?仅供参考,我的程序会在处理之前从输入中删除所有空格,这样空格就不会成为问题。问题中没有说明但需要注意的事项?
问问题
113 次
1 回答
0
你被 ruby 对字符串和字符的处理方式所困扰。
curr_ch = @input[i]
给你一个整数,对于你得到的输入,输入索引处字符的 ASCII 码i
。
curr_ch == '('
例如将该整数与字符串进行比较,"("
当然会失败。此外,正则表达式匹配失败,因为您将一个整数传递给他们需要字符串的位置。
替换所有出现的some_var = @input[some_index]
withsome_var = @input[some_index...some_index+1]
给了我一个似乎可以工作的程序(它适用于我给它的一些测试输入)。可能真正了解红宝石怪癖的人可以为您提供更好的解决方案。
于 2012-09-25T13:57:44.440 回答