1 条题解

  • 0
    @ 2025-2-14 20:57:48

    C++ :

    #include <iostream>
    #include <string>
    #include <vector>
    #include <algorithm>
    using namespace std;
    
    bool myComp(const string &s1,const string &s2)
    {
        int c1=count(s1.begin(),s1.end(),'1');
        int c2=count(s2.begin(),s2.end(),'1');
        return c1!=c2?c1<c2:s1<s2;
    }
    
    int main(){
        vector<string> vstr;
        string str;
        while(cin>>str)
        {
            vstr.push_back(str);
          /*  if(cin.get()=='\n')
            {
                break;
            }*/
        }
        sort(vstr.begin(),vstr.end(),myComp);
    	vector<string>::iterator it;
        for(it=vstr.begin();it<vstr.end();it++)
            cout<<*it<<endl;
        return 0;
    }
    

    Java :

    import java.util.*;
    public class Main{
        public static void main(String[] args){
            Scanner in=new Scanner(System.in);
            String ss="";
            while(in.hasNext()){
                ss=ss+in.next()+",";
            }
            String[] array=ss.split(",");
            int n=array.length;
            int[] numOfone=new int[n];
            for(int i=0;i<n;i++){
                numOfone[i]=Med1(array[i]);
            }
            String strSum="";
            String str1="";
            for(int j=0;j<n;j++){
                 str1="";
                int min=2147483647;
                for(int k=0;k<n;k++){
                    if(numOfone[k]!=-1&&numOfone[k]<min)
                    min=numOfone[k];
                }
                for(int k=0;k<n;k++){
                  if(numOfone[k]!=-1&&numOfone[k]==min){
                    numOfone[k]=-1;
                    str1=str1+array[k]+"\n";
                  }
                }
           String[] str2=str1.split("\n");
           int z=0;
           while(z==0){
               z=1;
               for(int h=0;h<str2.length-1;h++){
                   if(str2[h].compareTo(str2[h+1])>0){
                       String temp=str2[h];
                       str2[h]=str2[h+1];
                       str2[h+1]=temp;
                       z=0;
                    }
                }
            }
            for(int t=0;t<str2.length;t++)
                strSum=strSum+str2[t]+"\n";
            } 
            System.out.print(strSum);                  
        }
        public static int Med1(String str){
            int count=0;
            for(int i=0;i<str.length();i++){
                if(str.charAt(i)=='1') count++;
            }
            return count++;
        }
    }
            
    
    • 1

    信息

    ID
    565
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者