CSDN竞赛六期总结

简介: 1、严查枪火2、鬼画符门3、收件邮箱4、最长递增的区间长度

1、严查枪火


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


输入描述: 第一行输入枪支的数量,后边输入枪支的名称

输出描述: 输出需要按照私藏枪火来关押的人


代码展示:


import java.util.ArrayList;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        int result=0;
        Scanner scan = new Scanner(System.in);
        String str_0 = scan.nextLine().trim();
        int n = Integer.parseInt(str_0);
        ArrayList<String> vector = new ArrayList<>();
        for (int i = 0; i < n; i++){
            String str_1 = scan.nextLine().trim();
            vector.add(str_1);
        }
        scan.close();
        for (int i = 0; i < vector.size(); i++) {
            if (vector.get(i).equals( "ak")){
                result++;
            }else if (vector.get(i).equals( "m4a1")){
                result++;
            }else if (vector.get(i).equals("skr")){
                result++;
            }
        }
        System.out.println(result);
    }
}


示例:


输入:
3
Dsd
ak
232asd
输出:1


2、鬼画符门


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


输入描述: 输入鬼画符的数量,然后输入各种鬼画符

输出描述: 输出消耗数量最多的鬼画符


代码展示:


import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str_0 = scan.nextLine().trim();
        int n = Integer.parseInt(str_0);
        ArrayList<String> vector = new ArrayList<>();
        for (int i = 0; i < n; i++) {
            String str_1 = scan.nextLine().trim();
            vector.add(str_1);
        }
        scan.close();
        String result = "";
        Map<String, Integer> map = new HashMap<>();
        for (int i = 0; i < vector.size(); i++) {
            Integer j = 1;
            if (map.get(vector.get(i)) != null) {
                j = map.get(vector.get(i)) + 1;
            }
            map.put(vector.get(i), j);
        }
        int max = 1;
        for (String s : map.keySet()) {
            if (map.get(s) > max) {
                result = s;
                max = map.get(s);
            }
        }
        if (max == 1) {
            result = vector.get(0);
        }
        System.out.println(result);
    }
}


示例:


输入:5
blue
blue
red
red
red
输出:red


3、收件邮箱


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


输入描述: 输入字符串str.(1<=strlen(str)<=1000)

输出描述: 输出转化后的格式


代码展示:


package test03;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str_0 = scan.nextLine().trim();
        String str = str_0;
        scan.close();
        String result = "";
        str = str.replace("at", "@");
        result = str.replace("dot", ".");
        if (result.charAt(0) == '.') {
            result = "dot" + result.substring(1);
        }
        if (result.charAt(0) == '@') {
            result = "at" + result.substring(1);
        }
        if (result.charAt(result.length() - 1) == '.') {
            result = result.substring(0, result.length() - 1) + "dot";
        }
        if (result.charAt(result.length() - 1) == '@') {
            result = result.substring(1) + "at";
        }
        while (true) {
            if (result.indexOf('@') != result.lastIndexOf('@')) {
                int j = result.lastIndexOf('@');
                result = result.substring(0, j) + "at" + result.substring(j + 1);
            } else {
                System.out.println(result);
            }
        }
    }
}


示例:


输入:mxyatoxcoderdotcom
输出:mxy@oxcoder.com

4、最长递增的区间长度


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


输入描述: 输入一个数组

输出描述: 输出递增区间的长度


代码展示:


package test04;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String str_0 = scan.nextLine().trim();
        int n = Integer.parseInt(str_0);
        String str_1 = scan.nextLine();
        String[] line_list_1 = str_1.trim().split(" ");
        ArrayList<Integer> arr = new ArrayList<>();
        for (int i = 0; i < line_list_1.length; i++) {
            arr.add(Integer.parseInt(line_list_1[i]));
        }
        scan.close();
        int num = 1;
        int result = 0;
        for (int i = 0; i < n - 1; i++) {
            if (arr.get(i) < arr.get(i + 1)) {
                num++;
                if (num >= result) {
                    result = num;
                }
            } else {
                num = 1;
            }
        }
        if (n == 1) {
            result = 1;
        }
        System.out.println(result);
    }
}


示例:


输入:5,2,3,8,1,9
输出:3


目录
相关文章
|
11月前
【杂谈】恭喜自己获得CSDN专家称号,努力终会换来结果
【杂谈】恭喜自己获得CSDN专家称号,努力终会换来结果
50 0
【杂谈】恭喜自己获得CSDN专家称号,努力终会换来结果
|
测试技术 UED
【CSDN第五期竞赛】说说自己的感受吧
【CSDN第五期竞赛】说说自己的感受吧
81 0
|
算法
2022年终总结 | 我与CSDN的那些事,如何两个月成为一名万粉博主
Hello大家好,这里是每天都在努力学习后端的小王同学,遇见即是缘分,欢迎光临我的世界~
177 0
2022年终总结 | 我与CSDN的那些事,如何两个月成为一名万粉博主
|
机器学习/深度学习 人工智能 监控
DayDayUp:7月25日,如何打造技术品牌影响力?顶级大咖独家传授—阿里云乘风者计划专家博主&CSDN TOP1“一个处女座程序猿”《我是如何通过写作成为百万粉丝博主的?》演讲全文回顾
DayDayUp:7月25日,如何打造技术品牌影响力?顶级大咖独家传授—阿里云乘风者计划专家博主&CSDN TOP1“一个处女座程序猿”《我是如何通过写作成为百万粉丝博主的?》演讲全文回顾 目录 个人简介 一、什么内容是受欢迎的写作内容? 1.1、学生(计算机相关)群体 1.2、同行(开发者)群体 1.3、好内容的特点 二、一些经典的技术文章逻辑框架设计 2.1、从写作逻辑和结构角度考虑 (1)、对于bug类型的文章——通过分析刨根问底 (2)、对于学习类型的文章—通过案例学以致用 (3)、对于总结类型的文章—通过思考产生共鸣 2.2、从写作技巧考虑 (1)、题目和摘要必须简单、清晰明了且定位
DayDayUp:7月25日,如何打造技术品牌影响力?顶级大咖独家传授—阿里云乘风者计划专家博主&CSDN TOP1“一个处女座程序猿”《我是如何通过写作成为百万粉丝博主的?》演讲全文回顾
|
存储
【CSDN编程竞赛 第六期】我的第一场编程竞赛
我的第一场编程竞赛解题思路。
146 0
【CSDN编程竞赛 第六期】我的第一场编程竞赛
|
人工智能 前端开发 Cloud Native
9月博主有奖征文获奖名单
9月博主有奖征文获奖名单已经来啦~
|
JavaScript Docker 容器
8月博主有奖征文获奖名单
8月博主有奖征文获奖名单已经来啦~
7月博主有奖征文获奖名单
7月博主有奖征文获奖名单出炉啦~
7月博主有奖征文获奖名单