String 用数字解析字符串列表
我有一张单子。每个单词都有一个数值String 用数字解析字符串列表,string,list,scheme,String,List,Scheme,我有一张单子。每个单词都有一个数值 '(("Home" 15)("Baby" 20) ("Mother" 28)...)). 我必须写一个程序,它会得到这样的结果: (function-name "[Home (Baby3) 2] Mother")) 并计算它们的价值 每个单词都以大写字母开头,单词中的所有其他单词都是小写字母 每个单词都从上面的列表中获取其值 每个单词都需要乘以下面的数字。如果没有数字,则为1 在上述示例中: "[Home (Baby3) 2] Mother" =
'(("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个括号[,例如]
[家[Baby3]2]。
我怎么知道是第一个还是第二个?(不使用计数器和设置之类的工具!)考虑将问题分为几个阶段。一种可能的分解是:
“[Home(Baby3)2]Mother”
,编写一个解析函数,将其转换为更易于理解的结构化值”((Home(Baby3)2)Mother)
,或其一些变体你知道如何做这两件事吗?你不能仅仅为了让别人帮你做作业而利用这个地方。你至少应该考虑一些可能的方法,解释你的想法,并询问关于这些方法是否好的建议。更好的是,尝试一种方法,看看你在哪里遇到了问题,然后问。+1…没有更多的话要说,除非OP显示出更大的效率,我开始编写代码。但是,我不知道如何处理2个括号[,对于eaxmple[Home[Baby3]2],我怎么知道]是第一个括号还是第二个括号?(不使用计数器和集合之类的东西!)考虑阅读递归下降解析,这是解析括号字符串的一种相当简单的方法。我在中间有这样一个解析器的例子,但是它处理你可能不需要处理的问题。堆栈溢出应该有几个递归下降解析的引用,包括: