招商银行笔试0408

笔试初体验

  1. 选择题就是一些基础,问到了网络,java,python,数据库。我的感受是,java和数据库SQL语句占比是比较大的。
  2. 编程题花了大部分的时间以至于我只留了6分钟做33+5的选做题和问答题。

    第一道编程题:回文字符串的判断
    1<===>1 ///// 2<===>5 //// 3<===>8 /// 4<===>7 /// 6<===>9
    第一行为输入组数,后面每一行一个字符串,输出YES或者NO
    输入:
    3
    69
    6996
    1111
    输出:
    YES
    NO
    YES
    第二个编程题:是一个类似于24点的题
    先输入行数row,再输入row行“数字+目标”。问,如果在数字之间可以添上加减号,那么使得数字运算后等于目标的添法有几种?
    如输入:
    2
    21 1
    12345 3
    输出:
    1
    1

今天犯的错:老想着时间就慌,明明第一行的3对应的是组数,我还当成一组输入,以及 ,没有判断串的长度是偶数还是奇数,如果是奇数,那么最中间的数必须是1才可能回文
另外一个错误是scanner的next和nextLine误用
代码:

import java.util.HashMap;
import java.util.Scanner;
public class ZhaohangHuiwenzifu {
    public static void main(String args[]) {
        @SuppressWarnings("resource")
        Scanner sc = new Scanner(System.in);
        System.out.print("输入组数:");
        int T = sc.nextInt();
        HashMap<Character,Character> map = new HashMap<>();
        map.put('1','1');map.put('2','5');map.put('3','8');map.put('4','7');
        map.put('5','2');map.put('6','9');map.put('7','4');map.put('8','3');
        map.put('9','6');
        while(T>0) {
            System.out.print("输入待测字符串:");
            String str = sc.next();//此前使用nextLine()会直接拿空串去测
            if(new ZhaohangHuiwenzifu().helper(str,map)) {
                System.out.println("YES");
            }else {
                System.out.println("NO");
            }
            T--;
        }

    }
    public boolean helper(String str,HashMap<Character,Character> map) {
        System.out.print("当前字符串是"+str+"结果是");
        int len = str.length();
            if(len%2 != 0) {
                if(str.charAt(len/2)!='1') {
                    return false;
                }
            }
            for(int i =0;i<len/2;i++) {
                char ch1 =str.charAt(i);
                char ch2 =str.charAt(len-(i+1));
                if(map.get(ch1) != ch2) {
                    return false;
                }
            }
        return true;
    }
}        

第二题我用的递归,不知道为啥不对。。。
这题主要用到了递归回溯,要注意的是我理解成单个数字了但其实可以多个数,比如我原本理解是1+2+3但其实可以1+23,所以每一个数字读进来前面可以是+/-/空

全部评论
请问编程题可以选择的语言有哪些?
点赞 回复 分享
发布于 2020-04-09 12:21
搜了一下nextLine 1、以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。 2、可以获得空白。
点赞 回复 分享
发布于 2020-04-09 00:16

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务