下面是新浪微博上曾经很火的一张图:
输入格式:
输入在一行中给出一个由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};
并不知道为什么后面要加上 “”
但是不加的话
答案是错误的
现在属于基础薄弱阶段 虽然算法会一点 但是绝大部分知识点都不记得 现在阶段有一本thinking in Java 还有相关马士兵的教学视频 如果我要学习 该怎么安排时间
而且我每天不能在这上面花费太多时间 自己先想想该怎么解决这个问题
import java.util.ArrayList;
import java.util.Collections; //Collections提供方法对List进行排序操作 import java.util.Scanner;
public class Main {
/**
* @param args */ public static void main(String[] args) { Scanner sc = new Scanner(System.in); ArrayList<Integer> arr = new ArrayList<Integer>(); String s = sc.nextLine(); for (int i = 0;i<s.length();i++) { if (!arr.contains(Integer.valueOf(s.charAt(i)+"" ))){ //s.charAt(i);得到字符串i位置的值, arr.add(Integer.valueOf(s.charAt(i)+"" )); //Integer.valueOf(); 转换char类型为数字 } } Collections.sort(arr); //排序 Collections.reverse(arr); //翻转 System.out.print("int[] arr = new int[]{"); for (int i = 0;i<arr.size();i++) { if (i == 0) System.out.print(arr.get(i)+""); else System.out.print(","+arr.get(i)+""); } System.out.println("};"); System.out.print("int[] index = new int[]{"); for (int i = 0;i<s.length();i++) { if (i == 0) System.out.print(arr.indexOf(Integer.valueOf(s.charAt(i)+"" ))); //indexof 数组中元素的位置 else System.out.print(","+arr.indexOf(Integer.valueOf(s.charAt(i)+"" ))); } System.out.println("};"); }
}
|