import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int length = sc.nextInt(); String result = ""; List<String> list = new ArrayList<>(); for(int i = 0; i < length; i++){ list.add(sc.next()); } sc.close(); list.sort((String s1, String s2) -> s1.startsWith(s2) ? 1 : s2.startsWith(s1) ? -1 : -s1.compareTo(s2)); if(list.size() > 0 && !"0".equals(list.get(0))) for(String s : list) result += s; System.out.print(result.equals("") ? "0" : result); } }
while True: try: num1 = int(input()) num2 = [] for i in range(num1): num2.append(str(input())) num2.sort(reverse =True) for i in range(len(num2)-1): if(num2[i]+num2[i+1] < num2[i+1]+num2[i]): num2[i],num2[i+1] = num2[i+1],num2[i] result = ''.join(num2) while (len(result)>1 and result[0]=='0'): result= result[1:] print(result) except: break
import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.Arrays; import java.util.Comparator; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String strN; while((strN = br.readLine()) != null){ int n = Integer.parseInt(strN); String[] arr = new String[n]; for(int i = 0; i < n; i++) arr[i] = br.readLine().trim(); // 自定义排序方法 Arrays.sort(arr, new Comparator<String>() { public int compare(String a, String b) { return (b + a).compareTo(a + b); } }); // 排好序后顺序连接即可 StringBuilder sb = new StringBuilder(); for(int i = 0; i < n; i++) sb.append(arr[i]); if(sb.toString().charAt(0) == '0') System.out.println(0); else System.out.println(sb.toString()); } } }
import java.util.Arrays;
# -*- coding: UTF-8 -*-# input datarows = int(input())nums = [int(input()) for num in range(rows)]# sorted funcfrom functools import cmp_to_keyres =''.join(sorted(map(str,nums),key=cmp_to_key(lambdax,y: int(y+x)-int(x+y))))res =res if res[0] !='0' else '0'# print(rows)# print(nums)print(res)
# include <iostream> # include <string> # include <vector> # include <algorithm> using namespace std; bool compare(string &a, string &b){ return (a+b) > (b+a); } int main(){ int n; cin >> n; vector<string> str(n,""); for (int i =0;i<n;i++){ cin >> str[i]; } sort(str.begin(), str.end(), compare); string res; for (auto c : str){ res += c; } cout << res <<endl; return 0; }
n = int(input()) li = [] for _ in range(n): li.append(input()) for i in range(n): for j in range(i + 1, n): if li[i] + li[j] < li[j] + li[i]: li[i], li[j] = li[j], li[i] print(int("".join(li)))
n = int(input()) nums = [] for i in range(n): nums.append(input()) lis_0 = [] for i in nums: num = [] for j in i: num.extend(j) lis_0.extend(num[0]) lis_0 = list(int(i) for i in lis_0) t = list(zip(lis_0, nums)) def take_one(lis): return lis[0] t.sort(key=take_one, reverse=True) if t[1][0] == 0: print('0') else: lis_1 = list(i[1] for i in t) s = ''.join(lis_1) print(s) # case 60%有没有大神能看下
import sys lis=[] res = "" result = [] a = sys.stdin.readline().strip() while True: a = sys.stdin.readline().strip() if a: lis.append(a) else: break for j in range(len(lis)-1): for i in range(len(lis)-1-j): if int(lis[i] + lis[i+1]) < int(lis[i+1] + lis[i]): lis[i],lis[i+1] = lis[i+1],lis[i] for i in lis: res+= i if res[0]=="0": print(0) else: print(int(res))冒泡排序算法 时间复杂度 O N的平方
import sys if __name__ == '__main__': while True: line = sys.stdin.readline().strip() if line == '': break lines = line.split() n = int(lines[0]) nums = [] # 保存数字列 for i in range(n): nums.append(int(sys.stdin.readline().strip().split()[0])) nums = list(map(str, nums)) # 转为字符列表 flag = True # 冒泡排序结束的标志 while flag: flag = False for i in range(len(nums)-1): if nums[i] + nums[i+1] < nums[i+1] + nums[i]: temp = nums[i] nums[i] = nums[i+1] nums[i+1] = temp flag = True print(int("".join(nums)))
from functools import cmp_to_key def cmp(a, b): if len(a) == 0: return -1 elif len(b) == 0: return 1 elif len(a) == len(b): return -1 if a > b else 1 else: if a[0] > b[0]: return -1 elif a[0] < b[0]: return 1 else: return cmp(a[1:], b[1:]) if __name__ == "__main__": n = int(input()) d = [] for i in range(n): d.append(input()) d = sorted(d, key=cmp_to_key(cmp)) ans = int("".join(d)) print(ans)
importsys lines =sys.stdin.readlines() count =int(lines[0].strip()) number =[] fori inrange(1,len(lines)): number.append(lines[i].strip()) defsorting(n1,n2): if(n1+n2)>(n2+n1): return-1 elif(n1 +n2) ==(n2 +n1): return0 else: return1 number =sorted(number,sorting) print(int(''.join(number)))