蓝桥杯算法赛(二进制王国)

问题描述

二进制王国是一个非常特殊的国家,因为该国家的居民仅由 0 和 1 组成。

在这个国家中,每个家庭都可以用一个由 0 和 1 组成的字符串 S 来表示,例如 101、 000、 111 等。

现在,国王选了出 N 户家庭参加邻国的庆典。为了符合王国的审美标准,我们需要选择一种排队顺序,使得最终形成的队伍在字典序上是最小的。

国王将这个任务交给了你,请你解决这个问题。

输入格式

第一行包含一个整数 N(1 ≤N≤2×10^5),代表二进制家庭数量。

接下来输入 N 行,第 i 行输入一个二进制字符串 Si 表示第 i​​ 户家庭。

数据范围保证: ,其中 |Si|表示第 i 个字符串的长度。

输出格式

输出一行一个字符串,表示字典序最小的排队情况。

输入样例

复制代码
3 
111 
000 
101

输出样例

复制代码
000101111

说明

字典序最小的排队应该是 S2 S3 S1,形成的队伍为 000101111。

java 复制代码
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n=scan.nextInt();
        String[] s=new String[n];
        for(int i=0;i<n;i++){
          s[i]=scan.next();
        }
        Arrays.sort(s,new Comparator<String> (){
          public int compare(String s1,String s2){
            return (s1+s2).compareTo(s2+s1);
          }
        });
        for(int i=0;i<n;i++){
          System.out.printf(s[i]);
        }
    }
}
相关推荐
猪蹄手27 分钟前
C/C++基础详解(三)
开发语言·jvm·c++
再睡一夏就好34 分钟前
【排序算法】④堆排序
c语言·数据结构·c++·笔记·算法·排序算法
再睡一夏就好37 分钟前
【排序算法】⑥快速排序:Hoare、挖坑法、前后指针法
c语言·数据结构·经验分享·学习·算法·排序算法·学习笔记
程序员莫小特39 分钟前
老题新解|求一元二次方程
数据结构·c++·算法·青少年编程·c·信息学奥赛一本通
martian66539 分钟前
LeetCode算法领域经典入门题目之“Two Sum”问题
人工智能·算法·leetcode·医学影像
mit6.82444 分钟前
[Robotics_py] 路径规划算法 | 启发式函数 | A*算法
人工智能·算法
森林古猿11 小时前
论区间dp:常用模型(附极角排序教程)
c++·学习·算法·排序算法·动态规划·几何学
花火|1 小时前
算法训练营day46 647. 回文子串、516.最长回文子序列、动态规划总结篇
算法·动态规划
别来无恙1491 小时前
Java 8 Stream API 完全指南:优雅处理集合数据
java·开发语言·streamapi
freed_Day1 小时前
Java进阶学习之不可变集合
java·学习