[英]Validate string given Context Free Grammar in Java
有人如何驗證字符串是否是無上下文語法的一部分? 不只是虛擬,而是為它構建算法?
給定具有上下文無關語法的規則,例如
很明顯,這是語言1 ^ n 2 ^ n。 但是你將如何使用算法來驗證它是否真的存在。 我想在java中完成這個。
您可能希望查看Earley算法或CYK算法 ,這兩種算法用於決定字符串是否由無上下文語法生成。 無論語法中的生成規則如何,Earley的算法都會在時間O(n 3 )內運行任何長度為n的字符串(盡管big-O表示法中的常量項取決於語法),而CYK算法要求語法優先轉換為Chomsky法線形式以保證O(n 3 )運行時間。
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.