• (Java实现) 洛谷 P1012 拼数


    题目描述
    设有nn个正整数(n≤20)(n≤20),将它们联接成一排,组成一个最大的多位整数。

    例如:n=3n=3时,3个整数13,312,343联接成的最大整数为:3433121334331213
    又如:n=4n=4时,4个整数7,13,4,246联接成的最大整数为:74246137424613
    输入输出格式
    输入格式:
    第一行,一个正整数nn。

    第二行,nn个正整数。

    输出格式:
    一个正整数,表示最大的整数

    输入输出样例
    输入样例#1:
    3
    13 312 343
    输出样例#1:
    34331213

    import java.util.Scanner;
    
    
    public class pinshu {
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		Scanner in=new Scanner(System.in);
    		int n=in.nextInt();
    		int [] nums = new int [n];
    		for (int i = 0; i < nums.length; i++) {
    			nums[i]=in.nextInt();
    		}
    		String s[]=new String[nums.length];
    		for(int i=0;i<n;i++){
    			s[i]=Integer.toString(nums[i]);
    		}
    		for(int i=0;i<n-1;i++){
    			String max=s[i];
    			for(int j=i+1;j<n;j++){
    				if(cmp(max,s[j])<0){
    					max=s[j];
    					String temp=s[i];
    					s[i]=s[j];
    					s[j]=temp;
    				}
    			}
    		}
    		for(int i=0;i<s.length;i++)
    		System.out.print(s[i]);
    	}
    	public static int cmp(String s,String t){
    		for(int i=0;i<s.length()&&i<t.length();i++){
    			if(s.charAt(i)==t.charAt(i)){
    				continue;
    			}
    			if(s.charAt(i)>t.charAt(i)){
    				return 1;
    			}
    			else{
    				
    				return -1;
    			}
    		}
    		if(s.length()>t.length()){
    			return (s.charAt(s.length()-1)-t.charAt(0));
    		}
    		else if(s.length()<t.length()){
    			return -(t.charAt(t.length()-1)-s.charAt(0));
    		}
    		else{
    			return 0;
    		}
    		
    	}
    }
    
    
  • 相关阅读:
    SQL Server 代理配置
    HTTP request smuggling 学习笔记
    hashcat使用记录
    centos安装pip
    kali linux 使用记录
    ss搭建以及proxychains使用记录
    Linux命令后台运行
    XXE小结
    子域名枚举艺术深度剖析
    Excel RCE on macOS
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12948906.html
Copyright © 2020-2023  润新知