zoukankan      html  css  js  c++  java
  • 字符串排序

    题意:输入一个整数n,然后输入n个长度不超过20的字符串,需要输出排序后的n个字符串,
    排序规则:先按照长度排序,长度小的排前面,长度相等的按照字典序排列,字典序小的排前面。
    最后输入一个字符串,需要输出改字符串在原输入时的序号和排序后的序号,如果不存在,则输出None。

    input:
    5
    ab
    c
    def
    dfa
    f
    dfa

    output:
    c
    f
    ab
    def
    dfa
    4 5

    #include <stdio.h>
    #include <string.h> 
    
    // a是否大于 b
    int cmp(char a[25], char b[25]){
    	int f;
    	if(strlen(a) > strlen(b)){
    		return 1;
    	}
    	else if(strlen(a) < strlen(b)){
    		return 0;
    	}
    	else{
    		f = strcmp(a, b);
    		if(f < 0){
    			return 0;
    		}
    		else if(f > 0){
    			return 1;
    		}
    		else{
    			return 0;
    		}
    	}
    }
    
    int main(){
    	int i, j, n;
    	char a[25][25];
    	char b[25][25];
    	char c[25];
    	char buf[25];
    	int f = 1;
    	scanf("%d", &n);
    	
     	for(i = 1; i <= n; i++){
     		scanf("%s", &a[i]);
    		strcpy(b[i], a[i]);	
     	}
     	//排序:
    	for (i = 1; i<= n-1; ++i)  //比较n-1轮
        {
            for (j=1; j<= n-i; ++j)  //每轮比较n-1-i次,
            {
                if(cmp(a[j], a[j+1])) 
                {
    //            	printf("%s %s
    ", a[j], a[j+1]);
                    strcpy(buf, a[j]);	
                    strcpy(a[j], a[j+1]);
                    strcpy(a[j+1], buf);
                    
                }
            }
        }  
     	for(i = 1; i <= n; i++){
     		printf("%s
    ", a[i]);
     	}
     	scanf("%s", c);
     	for(i = 1; i <= n; i++){
    // 		printf("%s
    ", b[i]);
    		if(strcmp(c, b[i]) == 0){
    			printf("%d ", i);
    			f = 0;
    			break;
    		} 
     	}
     	if(f == 1){
     		printf("None");
     	}
     	else
    	 	for(i = 1; i <= n; i++){
    	// 		printf("%s
    ", b[i]);
    			if(strcmp(c, a[i]) == 0){
    				printf("%d", i);
    				break;
    			} 
    	 	}
    	return 0;
    }
    /*
    题意:输入一个整数n,然后输入n个长度不超过20的字符串,需要输出排序后的n个字符串,
    排序规则:先按照长度排序,长度小的排前面,长度相等的按照字典序排列,字典序小的排前面。
    最后输入一个字符串,需要输出改字符串在原输入时的序号和排序后的序号,如果不存在,则输出None。
    
    input: 
    5
    ab
    c
    def
    dfa
    f
    dfa 
    
    output:
    c
    f
    ab
    def
    dfa
    4 5
    */
    

      

  • 相关阅读:
    Git 常用命令集合
    PHP CURL
    Helm安装Dashboard
    使用helm 部署Nginx
    Helm v3部署和使用
    K8s
    Linux
    CentOS下 Docker、Docker Compose 的安装教程(附详细步骤)
    Passwordless SSH Login
    秒杀业务的设计
  • 原文地址:https://www.cnblogs.com/zhumengdexiaobai/p/13153384.html
Copyright © 2011-2022 走看看