博客作业03--栈和队列

1.学习总结

2.PTA实验作业

2.1 题目1: jmu-字符串是否对称

2.2 设计思路

数组a储存原字符串
while(a[j]){
 依次将a[j]入栈到s中
 j++}
for k=0 to k<=i{
  用b来储存从s中出栈的字符
  b和a[k]做比较
  如果不一样 说明不对称  break}
如果可以执行到k=i说明可以匹配对称
最后输出

2.3 代码截图

2.4 PTA提交列表说明


本题没有碰到大的问题。

2.1 题目2: jmu-报数游戏

2.2 设计思路

输入m报的数和n总人数
如果m>n输出error
for i=0 to i<n
{    按顺序入队}
while(1){
   算次数,达到m的话就把该数字出队直接输出
   如果没有达到,数字就先出对,然后再进队
   如果队列的个数<m break}
再把队列中剩下的数输出

2.3 代码截图

2.4 PTA提交列表说明


部分正确:格式错误;最后不能有空格,最后进行特殊情况判断就可以了。

2.1 题目3:银行业务队列简单模拟

2.2 设计思路

创建两个队列p,q
q来存放偶数顾客
p来存放奇数顾客
while(!p.empty()&&(!q.empty()))
{  
    p输出出队两次
    q输出出队一次}
如果p或q队列没有为空
  就把剩下的输出完

2.3 代码截图

2.4 PTA提交列表说明


本题没有碰到较大的问题。

3.截图本周题目集的PTA最后排名

3.1 栈PTA排名

3.2 队列PTA排名

3.3 我的总分:155

4. 阅读代码

public class Match {
    public static boolean match(String s){
        ArrayStack<Character> stack = new ArrayStack<>();
        for(int i = 0;i<s.length();i++){
            char c = s.charAt(i);
            switch (c) {
            case ')':
                if(!stack.isEmpty() && stack.pop() == '('){
                    break;
                }else{
                    return false;
                }
            case ']':
                if(!stack.isEmpty() && stack.pop() == '['){
                    break;
                }else{
                    return false;
                }
            case '}':
                if(!stack.isEmpty() && stack.pop() == '{'){
                    break;
                }else{
                    return false;
                }
            default:
                stack.push(c);
                break;
            }
        }
        return stack.isEmpty();
    }

    public static void main(String[] args) {
        System.out.println(match("{[()]()[{}]}"));
        System.out.println(match("{[()]}}"));
    }
}
  • 该代码的作用是:括号匹配检验
  • 算法需要一个栈,在读入字符的过程中,如果是左括号,则直接入栈,等待相匹配的同类右括号;
    如果是右括号,与当前栈顶左括号匹配,就将栈顶左括号出栈,如果不匹配则属于不合法的情况。
    另外,如果碰到一个右括号,而堆栈为空,说明没有左括号与之匹配,则非法。那么,当字符读完
    的时候,如果是表达式合法,栈应该是空的,如果栈非空,那么则说明存在左括号没有相应的右括
    号与之匹配,也是非法的情况。

5. 代码Git提交记录截图

posted @ 2018-04-14 20:22  圣多美  阅读(200)  评论(1编辑  收藏  举报