我马上就要开始一个新项目的工作了。基本上,这里有许多化合物,每个化合物都有自己的前缀/标识符。例如,几个字符后面跟着几个整数之类的东西,尽管它们都是不同的。
我想知道是否有一种算法可以有效地匹配这些元素,而不是使用大量的if。
我猜一个带有关键->值的散列映射,关键字是一些掩码可能是很好的,但我希望有人能提出一些更复杂的建议,我可以使用。
因为它不仅仅是化合物,不同的值的数量可能是巨大的。
谢谢
发布于 2010-10-29 22:33:59
考虑以下事实:
1)两个分子可以具有相同的结构标识符,例如由立体测量或比较两个复杂分子(特别是具有许多苯环)引起的。
2)考虑http://en.wikipedia.org/wiki/International_Chemical_Identifier。它定义了明确的分子结构版本,你可以从中提取结构式。例如:
1/C2H6O/c1-2-3/h3H,2H2,1H3代表的是
CH3CH2OH (ethanol) 3)您可以查看MQL分子查询语言
4)自己实现它可能需要很长时间。有一些上下文无关的语法,但它们非常复杂,请尝试查找一些自由分子查询
发布于 2010-10-29 20:22:51
将您的公式转换为字符串,然后使用正则表达式匹配,这将使您的生活更容易,您将学习正则表达式,这是一件相当方便的事情。
发布于 2010-10-29 20:27:34
如果你想专业地做这件事,可以创建一个语法文件并使用ANTLR生成一个解析器。
https://stackoverflow.com/questions/4051769
复制相似问题