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