1 条题解
-
0
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
- 上传者