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)))