有人能帮我解释下魔王语言的具体什
你的这个题目没有贴完整吧,呵呵
首先几个规则写得不够清楚
(1)αβ1β2…βm
(2)(θδ1δ2…δn)θδnδn-1…θδ1θ
这里应该为:
(1) α 转换为 β1β2…βm
(2) (θδ1δ2…δn) 转换为 θδnθδn-1… θδ1θ
你的描述中第二个规则写错了,得不到你后面测试数据的生成结果
(1) B tAdA
(2) A sae
这里应该是
(1)B转换为tAdA
(2)A转换为sae
第二,输入的值漏掉了一个B,否则得不到你所给的这个结果,也就是说,输入应该是B(ehnxgz)B
第三,漏掉了小写字母与汉字的对应关系,没有这个没法翻译,应该是
t d s a e z...全部
你的这个题目没有贴完整吧,呵呵
首先几个规则写得不够清楚
(1)αβ1β2…βm
(2)(θδ1δ2…δn)θδnδn-1…θδ1θ
这里应该为:
(1) α 转换为 β1β2…βm
(2) (θδ1δ2…δn) 转换为 θδnθδn-1… θδ1θ
你的描述中第二个规则写错了,得不到你后面测试数据的生成结果
(1) B tAdA
(2) A sae
这里应该是
(1)B转换为tAdA
(2)A转换为sae
第二,输入的值漏掉了一个B,否则得不到你所给的这个结果,也就是说,输入应该是B(ehnxgz)B
第三,漏掉了小写字母与汉字的对应关系,没有这个没法翻译,应该是
t d s a e z g x n h
天 地 上 一只 鹅 追 赶 下 蛋 恨
注意a对应的是"一只"
=========================================================
下面是基本推导过程,如果你看懂了过程,那么编程实现应该不会太难。
就是建立栈并每次分析栈顶字母并寻找可用规则进行"解释"的过程。
测试数据输入为B(ehnxgz)B,根据题目中要求使用的规则(2)和后面两个转换规则,推导过程为
B(ehnxgz)B-->tAdA(ehnxgz)B 应用规则B-->tAdA
tAdA(ehnxgz)B-->tsaedA(ehnxgz)B 应用规则A-->sae
tsaedA(ehnxgz)B-->tsaedsae(ehnxgz)B 应用规则A-->sae
tsaedsae(ehnxgz)B-->tsaedsaeezegexeneheB 应用规则(θδ1δ2…δn) --> θδnθδn-1… θδ1θ,这里的θ为字母e,δ1为h,δ2为n,δ3为x,δ4为g,δ5为z
tsaedsaeezegexeneheB-->tsaedsaeezegexenehetAdA 应用规则B-->tAdA
tsaedsaeezegexenehetAdA-->tsaedsaeezegexenehetsaedA 应用规则A-->sae
tsaedsaeezegexenehetsaedA-->tsaedsaeezegexenehetsaedsae 应用规则A-->sae
分析结束,根据小写字母与汉字的对应关系,得到
tsaedsaeezegexenehetsaedsae-->天上一只鹅地上一只鹅鹅追鹅赶鹅下鹅蛋鹅恨鹅天上一只鹅地上一只鹅
。收起