1 solutions

  • 0
    @ 2024-12-10 23:39:22

    C :

    #include <stdio.h>
    #include <string.h>
    struct Number
    {
    	char str[1010];
    	int l;
    };
    int main()
    {
    	void sort (struct Number a[],int n);
    	struct Number a[110];
    	int n,i;
    	while (scanf ("%d",&n)!=EOF)
    	{
    		getchar();
    		for (i=0;i<n;i++)
    		{	
    			gets(a[i].str);
    		    a[i].l=strlen(a[i].str);
    		    a[i].str[a[i].l]='\0';
    		}
    		sort(a,n);
    		for (i=0;i<n;i++)
    			puts(a[i].str);
    	}
    	return 0;
    }
    void sort (struct Number a[],int n)
    {
    	int i,j;
    	struct Number t;
    	for (i=0;i<n-1;i++)
    		for (j=0;j<n-1-i;j++)
    		{
    			if (a[j].l>a[j+1].l)
    			{
    				t=a[j]; a[j]=a[j+1]; a[j+1]=t;
    			}
    			if (a[j].l==a[j+1].l)
    			{
    				if (strcmp(a[j].str,a[j+1].str)>0)
    				{
    					t=a[j]; a[j]=a[j+1]; a[j+1]=t;
    				}
    			}
    		}
    }
    

    C++ :

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    
    struct STR
    {
    	char s[1001];
    	int l;
    }str[100];
    
    bool cmp(STR a,STR b)
    {
    	if(a.l==b.l)
    		return strcmp(a.s,b.s)<0?1:0;
    	return a.l<b.l;
    }
    
    int main()
    {
    	int n,i;
    	while(scanf("%d",&n)!=EOF)
    	{
    		for(i=0;i<n;i++)
    		{
    			scanf("%s",str[i].s);
    			str[i].l=strlen(str[i].s);
    		}
    		sort(str,str+n,cmp);
    		for(i=0;i<n;i++)
    			puts(str[i].s);
    	}
    	return 0;
    }
    

    Pascal :

    var
     n,i,j:longint;
     temp:ansistring;
     a:array[1..100] of ansistring;
    begin
     while not eof do
      begin
    
     for i:=1 to 100 do
      a[i]:='';
     readln(n);
     for i:=1 to n do
      readln(a[i]);
     for i:=1 to n-1 do
      for j:=i to n do
       if (a[i]>a[j])and(length(a[i])=length(a[j]))or(length(a[i])>length(a[j])) then
        begin
         temp:=a[i];
         a[i]:=a[j];
         a[j]:=temp;
        end;
     for i:=1 to n do
      writeln(a[i]);
    
      end;
    end.
    

    Java :

    import java.util.*;
    
    
    public class Main{
    	public static void main(String[] args){
    		String[] arr = new String[105];
    		Scanner scan = new Scanner(System.in);
    		int i,n;
    		
    		while(scan.hasNextInt()){
    			n = scan.nextInt();
    			for(i=0; i<n; i++){
    				arr[i] = scan.next();
    			}
    			
    			qsort(arr, 0, n-1, new BigComparator());
    			
    			for(i=0; i<n; i++){
    				System.out.println(arr[i]);
    			}
    		}
    	}
    	
    	public static <T> void qsort(T[] a, int start, int end, Comparator<? super T> cmp){
    		if(start >= end){
    			return;
    		}
    		
    		int i=start, j=end;
    		boolean dir = true;
    		
    		while(i < j){
    			if(cmp.compare(a[i], a[j]) > 0){
    				T t = a[i];
    				a[i] = a[j];
    				a[j] = t;
    				
    				dir = !dir;
    			}
    			
    			if(dir){
    				--j;
    			}else{
    				++i;
    			}
    		}
    		
    		qsort(a, start, i-1, cmp);
    		qsort(a, i+1, end, cmp);
    	}
    }
    
    
    class BigComparator implements Comparator<String>{
    	@Override
    	public int compare(String a, String b){
    		int len = a.length();
    		
    		if(len != b.length()){
    			return len - b.length();
    		}
    		
    		for(int i=0; i<len; i++){
    			if(a.charAt(i) != b.charAt(i)){
    				return a.charAt(i)-b.charAt(i);
    			}
    		}
    		
    		return 0;
    	}
    }
    

    Python :

    while 1:
        a=[]
        N=int(input())
        for i in range(0,N):
            s=int(input())
            a.append(s)
        a.sort()
        for x in a:
            print(x)
    
    • 1

    Information

    ID
    614
    Time
    1000ms
    Memory
    32MiB
    Difficulty
    10
    Tags
    # Submissions
    1
    Accepted
    0
    Uploaded By