使用数字解析字符串列表

时间:2012-10-30 15:37:23

标签: string list scheme

我有一个单词列表。每个单词都有一个数值。

 '(("Home" 15)("Baby" 20) ("Mother" 28)...)).

我必须编写一个类似的程序:

(function-name "[Home (Baby3) 2] Mother")) 

并计算它们的价值。

  • 每个单词都以大写字母开头,单词中的所有其他单词都是小写的。
  • 每个单词都从上面的列表中获取其值。
  • 每个单词需要乘以下面的数字。如果没有数字,则为1。

在上面的示例中:

"[Home (Baby3) 2] Mother" =  Home*1 + (Baby*3)*2 +Mother*1=15*1+20*3*2+28=163

我不知道如何开始这个。有什么想法吗?

我开始编写代码。 但是,我不知道如何处理2个括号[,对于eaxmple [首页[Baby3] 2]。 我怎么知道第一个还是第二个? (不使用像计数器和套装这样的东西!)

1 个答案:

答案 0 :(得分:3)

考虑将问题分解为几个阶段。一种可能的分解是:

  1. 弄清楚如何将任意字符串和解析它们放入数据结构中。例如给定"[Home (Baby3) 2] Mother",编写一个解析函数,将其转换为更易消化的结构化值'((Home (Baby 3) 2) Mother)或其中的一些变体。

  2. 给定这样的结构化值,根据您在问题中描述的规则,将函数写入解释

  3. 你知道怎么做这两个吗?