CSDN编程竞赛6th

 前言/背景

本人本身就喜欢写一些算法题,算法运行成功的时候,很有成就感。其实参加这个竞赛也没有指望拿很好的名次,只是想看看自己跟大神们的差距有多大。

大赛简介

总共三道编程题,时间限制2个小时。 

参赛流程

活动时间:9月8日-26日(竞赛时间截止9.18)

竞赛考试时间:9月18日 8:30-11:00(作答时间2小时)

获奖名单公布:9月23日,在本页面公布获奖名单链接

获奖用户信息收集:9月27日

奖品发放:9月30日后7个工作日内

参赛经历

其实上个月就报过名了,但是时间给错过了。这次我特地设了闹钟。

解题思路

1、题目名称:严查枪火 X国最近开始严管枪火。 像是“ak”,“m4a1”,“skr”。都是明令禁止的。 现在小Q查获了一批违禁物品其中部分是枪支。 小Q想知道自己需要按照私藏枪火来关押多少人。 (只有以上三种枪被视为违法)

这道题其实非常的简单,只要对输入进行遍历,然后找出等于“ak”,“m4a1”,“skr”的个数就行了

public static int solution(int n, ArrayList<String> vector){
    int result = 0;
    for(int i=0;i<vector.size();i++){
        if(vector.get(i).equals("ak") ||
            vector.get(i).equals("m4a1") ||
            vector.get(i).equals("skr")
        ){
            result++;
        }
    }
    return result;
}

2、题目名称:鬼画符门 鬼画符门,每年都会统计自己宗门鬼画符消耗的数量,往年一直是大师兄管理, 但是这次鬼艺接手了, 你能帮鬼艺写一个 程序统计每年消耗数量最多的鬼画符吗?

这道题是使用键值对,将所有鬼画符作为键,个数作为值,然后求出最大值的鬼画符。

public static String solution(int n, ArrayList<String> vector){
    int result = 0;
    Map<String,Integer> map = new HashMap<>();
    for(int i=0;i<n;i++){
        String s = vector.get(i);
        if(map.containsKey(s)){
            map.put(s,map.get(s)+1);
        }else{
            map.put(s,1);
        }
    };
    List<Map.Entry<String,Integer>> list = new ArrayList<>(map.entrySet());
    list.sort((a,b)->{
        if(a.getValue()>b.getValue()){
            return -1;
        }else{
            return 1;
        }
    });
    return list.get(0).getKey();
}

3、题目名称:收件邮箱 已知字符串str,str表示邮箱的不标准格式。 其中”.”会被记录成”dot”,”@”记录成”at”。 写一个程序将str转化成可用 的邮箱格式。(可用格式中字符串中除了开头结尾所有”dot”,都会被转换,”at”只会被转化一次,开头结尾的不转化)

这道题我使用了分割字符串的方法

public static String solution(String str){
    String result = "" + str.charAt(0);
    // TODO: 请在此编写代码
    for(int i=1;i<str.length();i++){
        if(i<str.length()-3 && str.substring(i,i+3).equals("dot")){
            result = result+".";
            i = i+2;
        }else if(!result.contains("@") && str.substring(i,i+2).equals("at")){
            result = result+"@";
            i = i+1;
        }else{
            result = result + str.charAt(i);
        }
    }
    return result;
}

4、题目名称:最长递增的区间长度 给一个无序数组,求最长递增的区间长度。如:[5,2,3,8,1,9] 最长区间 2,3,8 长度为 3

public static int solution(int n, ArrayList<Integer> arr){
    int result = 0;
    // TODO: 请在此编写代码
    int x = 1;
    List<Integer> list = new ArrayList<>();
    for(int i=1;i<n;i++){
        if(arr.get(i)>=arr.get(i-1)){
            x++;
            if(i==n-1){
                list.add(x);
            }
        }else{
            list.add(x);
            x=1;
        }
    }
    Collections.sort(list);
    result = list.size()==0 ? 1 : list.get(list.size()-1);
    return result;
}

经验心得

遇到题不要慌,要耐心读题,谨慎思考。可以从多方位考虑问题。条条大路通罗马,总有解决问题的办法

BUG 邂逅

在提交代码的时候遇到非常糟心的事就是代码老是串!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
墨刀是一款国内知名的原型设计软件,提供了丰富的设计工具和项目协作功能,广泛应用于用户界面(UI)设计、交互设计、用户体验设计等领域。作为一个设计师,经常使用墨刀能够帮助我们更好地进行交互原型的制作、团队协作和设计迭代的过程。 墨刀的CSDN编程社区下载通常是指在CSDN网站上下载墨刀软件并使用。CSDN是一个为程序员提供学习、交流、分享的专业IT技术社区,在这个社区中,我们可以下载到各种与编程相关的软件、教程、文档等资源。 通过在CSDN上下载墨刀,我们可以快速获取到最新版本的墨刀软件,并且可以利用CSDN社区的技术交流平台,与其他编程爱好者们分享墨刀的使用心得、解惑,还可以向其他用户请教与墨刀设计相关的问题。这样能够极大地提高我们的设计效率和设计水平。 墨刀在CSDN编程社区下载的过程相对简单,我们只需在CSDN的网站中搜索“墨刀”,找到墨刀的相关页面,通过页面上的下载按钮即可下载到墨刀的安装包。下载完成后,我们需要运行安装包,按照安装向导进行软件的安装过程。安装完成后,我们就可以开始使用墨刀来进行交互设计工作了。 总的来说,通过在CSDN编程社区下载墨刀,我们可以快速获取到墨刀软件,并能够利用CSDN社区的资源与其他编程爱好者交流、分享和学习,从而提高自己的设计能力和水平。所以,如果你对墨刀的设计工作感兴趣,不妨去CSDN编程社区下载墨刀软件吧!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

若博豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值