哪个网站做清洁的活多制作游戏的app
news/
2025/9/28 22:04:37/
文章来源:
哪个网站做清洁的活多,制作游戏的app,wordpress4.9.8火车头,母婴网站建设前期规划下面是新浪微博上曾经很火的一张图#xff1a; 一时间网上一片求救声#xff0c;急问这个怎么破。其实这段代码很简单#xff0c;index数组就是arr数组的下标#xff0c;index[0]2 对应 arr[2]1#xff0c;index[1]0 对应 arr[0]8#xff0c;index[2]3 对应 arr[3]0…下面是新浪微博上曾经很火的一张图 一时间网上一片求救声急问这个怎么破。其实这段代码很简单index数组就是arr数组的下标index[0]2 对应 arr[2]1index[1]0 对应 arr[0]8index[2]3 对应 arr[3]0以此类推…… 很容易得到电话号码是18013820100。
本题要求你编写一个程序为任何一个电话号码生成这段代码 —— 事实上只要生成最前面两行就可以了后面内容是不变的。
输入格式
输入在一行中给出一个由11位数字组成的手机号码。
输出格式
为输入的号码生成代码的前两行其中arr中的数字必须按递减顺序给出。
输入样例
18013820100
输出样例
int[] arr new int[]{8,3,2,1,0};
int[] index new int[]{3,0,4,3,1,0,2,4,3,4,4};
解题思路
为了生成这样的代码首先需要理解代码的逻辑。给定的数组arr和index共同组成了电话号码。arr数组包含了电话号码中的不同数字而index数组则指定了在arr数组中找到相应数字的位置。例如如果index[0] 2那么电话号码的第一个数字是arr[2]。
为了生成这样的代码我们需要执行以下步骤
确定arr数组从电话号码中提取不同的数字并按降序排列。确定index数组对于电话号码的每个数字找出它在arr数组中的位置。
解题过程中遇到的问题
当拿到这个题目时就有一个需要解决的问题如何进行去重并排序HashSet吗可是无序。排序用什么呢Arrays.sort吗如何通过字符串来构造一个数组呢我想了想有点繁琐。但是JDK8 Stream可以很好的实现。
String[] uniqueNumbers Arrays.stream(phoneNumber.split()).distinct().sorted((a, b) - b.compareTo(a)).toArray(String[]::new); 代码
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;public class Main {public static void main(String[] args) {// 电话号码Scanner scanner new Scanner(System.in);String phoneNumber scanner.next();generateCode(phoneNumber);}public static void generateCode(String phoneNumber) {// 去重并排序String[] uniqueNumbers Arrays.stream(phoneNumber.split()).distinct().sorted((a, b) - b.compareTo(a)).toArray(String[]::new);// 构建arr数组System.out.print(int[] arr new int[]{);for (int i 0; i uniqueNumbers.length; i) {System.out.print(uniqueNumbers[i]);if (i uniqueNumbers.length - 1) {System.out.print(,);}}System.out.println(};);// 构建数字到其在arr中索引的映射MapString, Integer numberToIndex new HashMap();for (int i 0; i uniqueNumbers.length; i) {numberToIndex.put(uniqueNumbers[i], i);}// 构建index数组System.out.print(int[] index new int[]{);for (int i 0; i phoneNumber.length(); i) {String number String.valueOf(phoneNumber.charAt(i));System.out.print(numberToIndex.get(number));if (i phoneNumber.length() - 1) {System.out.print(,);}}System.out.println(};);}
}
利用HashSet和Arrays.sort()去重
import java.util.*;public class Main {public static void main(String[] args) {Scanner scanner new Scanner(System.in);String phoneNumber scanner.next();generateCode(phoneNumber);}public static void generateCode(String phoneNumber) {// 使用HashSet去重SetCharacter uniqueSet new HashSet();for (char c : phoneNumber.toCharArray()) {uniqueSet.add(c);}// 转换为数组并使用Arrays.sort进行排序Character[] uniqueNumbers uniqueSet.toArray(new Character[0]);Arrays.sort(uniqueNumbers, (a, b) - b.compareTo(a));// 构建arr数组System.out.print(int[] arr new int[]{);for (int i 0; i uniqueNumbers.length; i) {System.out.print(uniqueNumbers[i]);if (i uniqueNumbers.length - 1) {System.out.print(,);}}System.out.println(};);// 构建数字到其在arr中索引的映射MapCharacter, Integer numberToIndex new HashMap();for (int i 0; i uniqueNumbers.length; i) {numberToIndex.put(uniqueNumbers[i], i);}// 构建index数组System.out.print(int[] index new int[]{);for (int i 0; i phoneNumber.length(); i) {char number phoneNumber.charAt(i);System.out.print(numberToIndex.get(number));if (i phoneNumber.length() - 1) {System.out.print(,);}}System.out.println(};);}
}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/921179.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!