scala 实现布尔表达式的计算
来源:互联网 发布:人工智能对人类的意义 编辑:程序博客网 时间:2024/04/29 14:50
import scala.collection.mutable.ArrayStackobject App{ def main(args:Array[String]){ val b = Array(true,true,true,true) val v = Array("(","0","or","(","1","and","2",")",")","and","!","3","#") val st1 = new ArrayStack[String]() val st2 = new ArrayStack[Boolean]() st1.push("#") val pos = Map("and"->1,"or"->1,"!"->3,"#"-> -1) val pis = Map("and"->1,"or"->1,"!"->0,"#"-> -1,"("-> -1) for(i<- 0 until v.size){ if(v(i)=="and"||v(i)=="or"||v(i)=="!"){ if(pos(v(i))>pis(st1.top)) st1.push(v(i)) else{ while(pos(v(i))<=pis(st1.top)){ val c = st1.pop() match{ case "and" => st2.pop&&st2.pop case "or" => st2.pop||st2.pop case "!" => !st2.pop } st2.push(c) } st1.push(v(i)) } } else if(v(i)=="("){ st1.push("(") } else if(v(i)==")" || v(i)=="#"){ while(st1.top!="(" && st1.top!="#"){ val c = st1.pop() match{ case "and" => st2.pop&&st2.pop case "or" => st2.pop||st2.pop case "!" => !st2.pop } st2.push(c) } st1.pop() } else{ st2.push(b(v(i).toInt)) } } println(st2.top) }}
0 0
- scala 实现布尔表达式的计算
- 布尔表达式的验证
- 布尔表达式的判断设置
- 用栈来实现表达式的计算
- 栈实现表达式的计算
- C++实现表达式的计算
- 布尔表达式
- 布尔表达式
- POJ 2106:Boolean Expressions 计算布尔表达式 - 堆栈
- Unity随机布尔的实现
- JavaScript条件表达式的布尔判断
- JavaScript条件表达式的布尔判断
- poj3295 布尔型的前缀表达式
- Scala中List的ListBuffer实现高效的遍历计算
- 用Scala实现延迟计算
- spark AUC 计算实现(Scala)
- Scala的条件表达式
- 利用API 实现字符串表达式的计算
- Maven:Could not resolve archetype
- 一个“断更就封号”的高冷习惯养成类App「念」
- php cURL模拟https请求报错
- Vijos P1964夜夜的NOIP之旅
- Xcode中修改变量名、类名及字符串的替换操作
- scala 实现布尔表达式的计算
- 哥伦比亚大学Coursera课程Natural Language Processing:Quiz 2: covers material from weeks 3 and 4
- iOS btn文字居左
- 【案例分析】地产集团公司BI项目建设方案
- 自定义可以编辑内容的Dialog(回调函数)
- Spring学习笔记(十七):spring配置文件详解以及beans:beans标签
- iOS 时间戳和标准时间的转换
- 微信公众号支付
- Android硬件抽象层(HAL)概要介绍和学习计划