编程题中的问题 2020-9-13

1、多行的输入输出

		Scanner sc = new Scanner(System.in);
        int t = sc.nextInt();//以空格和回车区别的数
        String s = sc.nextLine();//或得一行的内容

因为好久没有接触基本的输入输出了,导致今天做的好多题都没有做出来,以及导致做题速度低。

2、栈的操作

(+ a b) 遇到这种题一般都会想到运用栈,但是脑海里想到的还是之前数据结构,用c++自己实现栈的操作,没有想到直接用Java里的数据结构,LinkList就可以实现对栈的操作。
栈的操作参考如下:

class Solution {
    public boolean isValid(String s) {
 int len = s.length();
        if (len % 2 == 1) {
            return false;
        }
        Map<Character, Character> map = new HashMap<>();
        map.put('}', '{');
        map.put(']', '[');
        map.put(')', '(');
        Deque<Character> stack = new LinkedList<Character>();
        for (int i = 0; i < len; i++) {
            char ch = s.charAt(i);
            if (map.containsValue(ch)) {
                stack.push(ch);
            } else {
                if (stack.isEmpty() || stack.peek() != map.get(ch)){
                    return false;
                }else
                    stack.pop();
            }
        }
        return stack.isEmpty();
    
    }
}

3、三维数组的操作

脑子里一直在想二维数组的赋值,但是某一刻也想到用new int[][]二维数组,再赋值到三维数组中,奈何还是自己做的太慢,没有时间尝试又到时间了。

/**
 * 三维数组
 * @author Administrator
 *
 */
public class DemoArraysThred {
 
    public static void main(String arg[]) {
 
        /*三维数组*/
        int[][][] arr = new int[3][][];
        arr[0] = new int[3][];
         
        arr[0][0] = new int[2];
        arr[0][0][0] = 1111;
        arr[0][0][1] = 1112;
         
        arr[0][1] = new int[2];
        arr[0][1][0] = 1121;
        arr[0][1][1] = 1122;
         
        arr[0][2] = new int[3];
        arr[0][2][0] = 1131;
        arr[0][2][1] = 1132;
        arr[0][2][2] = 1133;
         
        arr[1] = new int[3][];
        arr[1][0] = new int[2];
        arr[1][0][0] = 1211;
        arr[1][0][1] = 1212;
         
        arr[1][1] = new int[2];
        arr[1][1][0] = 1221;
        arr[1][1][1] = 1222;
         
        arr[1][2] = new int[2];
        arr[1][2][0] = 1231;
        arr[1][2][1] = 1232;
         
        arr[2] = new int[3][];
        arr[2][0] = new int[2];
        arr[2][0][0] = 1311;
        arr[2][0][1] = 1312;
         
        arr[2][1] = new int[2];
        arr[2][1][0] = 1321;
        arr[2][1][1] = 1322;
         
        arr[2][2] = new int[2];
        arr[2][2][0] = 1331;
        arr[2][2][1] = 1332;
         
         
        for (int[][] a2 : arr) {
            for (int[] a1 : a2) {
                for (int a: a1) {
                    System.out.print(a + "\t");
                }
                System.out.println();
            }
        }
         
    }
 
}

参考连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值