• 二柱子


    二柱子测试三

     

    主要讲一下我测试三的主要思路

    首先先讲一下算数表达式的随机生成

    先建一个 ArrayList<String>对象,用于存取生成的算数表达式

    先建立一个StringBuffer对象,用于存判断是否重复之前随机生成的表达式

    将生成的数和运算符都转化为字符串形式,添加到建立好的StringBuffer对象里

    将StringBuffer 转化为String 进行判断重复

    如果不重复就添加到ArrayList<String>对象,

    再讲一讲对字符串进行计算,利用Java 栈,

    首先将字符串分割成一个一个字符,

    然后进行判断,如果是操作数 判断下一字符 是不是数,如果是 进行拼接,直到下一个字符是操作符,再入数栈

    如果是运算符则判断运算符栈与当前运算符优先级;优先级相等,则字符串栈出栈一个元素(运算符),

    优先级低则将当前运算符压入运算符栈中;优先级高则优先级高则区出栈数字栈两个数字与出栈运算符栈栈顶运算符做运算,

    结果压入数字栈中,当前运算符不变;判断程序结束边界为当前字符为‘#’或运算符栈栈顶字符为‘#’;

    我觉得这两个功能是最重要的

  • 相关阅读:
    215. Kth Largest Element in an Array
    214. Shortest Palindrome
    213. House Robber II
    212. Word Search II
    210 Course ScheduleII
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    206. Reverse Linked List
    sql 开发经验
  • 原文地址:https://www.cnblogs.com/jz-no-bug/p/14204736.html
Copyright © 2020-2023  润新知