有个问题没有头绪,请大家帮忙 ( 积分: 200 )

  • 主题发起人 主题发起人 dongnan99
  • 开始时间 开始时间
D

dongnan99

Unregistered / Unconfirmed
GUEST, unregistred user!
我想把这个串
'3'&substr('3'&'111',1,2)
转换成如下的串
concat('3',substr(concat('3','111'),1,2))
也就是把&这个字符串连接符转换成concat(str1,str2,strn)的形式,即
输入'a'&'b'这个串
输出concat('a','b')这个串
问题是如何才能在输入一个复杂的有嵌套&的串的时候,正确的转换成concat的形式,有什么好的算法?
 
我想把这个串
'3'&substr('3'&'111',1,2)
转换成如下的串
concat('3',substr(concat('3','111'),1,2))
也就是把&这个字符串连接符转换成concat(str1,str2,strn)的形式,即
输入'a'&'b'这个串
输出concat('a','b')这个串
问题是如何才能在输入一个复杂的有嵌套&的串的时候,正确的转换成concat的形式,有什么好的算法?
 
问题本身不难,递推的话由内向外,递归由外向内脱就行了.
复杂的是跟其他运算符和函数的优先级关系,要提供详细才好做呀.
 
看看编译原理上的解释器是如何做的。
 
我记得 stringlist 中好像有一个 方法
但具体 不记得是那个了 ,你看看撒
功能好像是 str :=a&b&c
能变成
list[0]=a
list[1]=b
list[2]=c
 
后退
顶部