两段代码分别解决了两个不同的算法问题,下面是对它们的概述:
1、(整形数组按个位值排序):
这段代码是解决“整形数组按个位值排序”的问题。它提供了一个Java类Main
,其中包含main
方法,用于读取输入、执行排序并打印结果。
代码首先使用Scanner
从标准输入读取一行文本,该文本包含一个由逗号分隔的整数数组。然后,使用String.split
方法根据逗号分隔符将字符串分割成String
数组。
接着,使用Arrays.sort
方法和一个自定义的Comparator
对字符串数组进行排序。排序依据是每个字符串的最后一个字符(即整数的个位数值)。排序完成后,使用String.join
方法将排序后的字符串数组重新组合成一个由逗号分隔的字符串。
最后,打印出排序后的字符串。
2、(停车场车辆统计):
这段代码是解决“停车场车辆统计”的问题。它提供了一个Java类Main
,其中包含main
方法和countMin
方法,用于计算停车场最少可以停多少辆车。
main
方法使用Scanner
读取一行文本,该文本是一个由逗号分隔的整数数组。然后,调用countMin
方法并打印结果。
countMin
方法的目的是统计字符串中最少可以停多少辆车。代码首先使用String.replaceAll
方法将字符串中所有的"111"
、"11"
和"1"
替换为单个字符"c"
,同时将所有的"0"
替换为空字符串。这样,字符串中只剩下代表车辆的"c"
字符。
最后,返回字符串的长度,即最少停车数目。
package OD200;
import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
/**
* @description 整形数组按个位值排序
* @level 2
*/
/**
* 题目描述
* 给定一个非空数组(列表),其元素数据类型为整型,请按照数组元素十进制最低位从小到大进行排序,十进制最低位相同的元素,相对位置保持不变。
* <p>
* 当数组元素为负值时,十进制最低位等同于去除符号位后对应十进制值最低位。
* <p>
* 输入描述
* 给定一个非空数组,其元素数据类型为32位有符号整数,数组长度[1, 1000]
* <p>
* 输出描述
* 输出排序后的数组
*/
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] str = sc.nextLine().split(",");
//按照最后一位升序排列
Arrays.sort(str, Comparator.comparingInt(o -> o.charAt(o.length() - 1)));
String result = String.join(",", str);
System.out.println(result);
}
}
package OD210;
import java.util.Scanner;
/**
* @description 停车场车辆统计
* @level 5
* @score 100
*/
/**
* 题目描述
* 特定大小的停车场,数组cars[]表示,其中1表示有车,0表示没车。
* <p>
* 车辆大小不一,小车占一个车位(长度1),货车占两个车位(长度2),卡车占三个车位(长度3)。
* <p>
* 统计停车场最少可以停多少辆车,返回具体的数目。
* <p>
* 输入描述
* 整型字符串数组cars[],其中1表示有车,0表示没车,数组长度小于1000。
* <p>
* 输出描述
* 整型数字字符串,表示最少停车数目。
*/
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
//取出所有,号 如1110010011
String str = sc.nextLine().replaceAll(",", "");
System.out.println(countMin(str));
}
//计算最少停车数 001001000111001
public static int countMin(String str) {
str = str.replaceAll("111", "c")
.replaceAll("11", "c")
.replaceAll("1", "c")
.replaceAll("0", "");
//现在有多少个c就是停了多少车
return str.length();
}
}
标签:String,OD,Scanner,按个,str,数组,字符串,排序,刷题
From: https://blog.csdn.net/2401_84585615/article/details/139429070