• hackrank Sorting Array of Strings


    https://www.hackerrank.com/challenges/sorting-array-of-strings/problem

     1 int flag = 1;
     2 int distinct_characters(const char* a);
     3 
     4 int lexicographic_sort(const char* a, const char* b) {
     5 
     6 if(strcmp(a, b) > 0){
     7     flag = 0;
     8 }else flag = 1;
     9   
    10   return flag;
    11 }
    12 
    13 int lexicographic_sort_reverse(const char* a, const char* b) {
    14   if(strcmp(a, b) < 0){
    15       flag = 0;
    16   }else flag = 1;
    17   return flag;
    18 }
    19 
    20 int distinct_characters(const char* a){
    21     int dis_char = strlen(a);
    22     int len = strlen(a);
    23     for(int i = 0; i < len; i ++){
    24         if(a[i] != '\0'){
    25             for(int j = i + 1; j < len; j ++){
    26                 if(a[i] == a[j]){
    27                     dis_char --;
    28                     break;
    29                 } 
    30             }
    31         }
    32     }
    33     return dis_char;
    34 }
    35 
    36 
    37 int sort_by_number_of_distinct_characters(const char* a, const char* b) {
    38   int dis_a = distinct_characters(a);
    39   int dis_b = distinct_characters(b);
    40   if(dis_a > dis_b){
    41       flag = 0;
    42   }else if(dis_a == dis_b){
    43       if(strcmp(a, b) > 0){
    44           flag = 0;
    45       }else flag = 1;
    46   }else flag = 1;
    47    
    48  
    49   return flag;
    50 }
    51 
    52 int sort_by_length(const char* a, const char* b) {
    53   int len_a = strlen(a);
    54   int len_b = strlen(b);
    55   if(len_a > len_b){
    56       flag = 0;
    57   }
    58   else if(len_a == len_b){
    59       if(strcmp(a, b) > 0){
    60           flag = 0;
    61       }else{
    62           flag = 1;
    63       }
    64   }else  flag = 1;
    65   return flag;
    66 }
    67 
    68 void string_sort(char** arr,const int len,int (*cmp_func)(const char* a, const char* b)){
    69   // int result = cmp_func;
    70   int result;
    71   for (int i = 0; i < len; i++) {
    72     for (int j = i + 1; j < len; j++) {
    73       result = (*cmp_func)((*(arr + i)), (*(arr + j)));
    74       if (result == 0) {
    75         char *temp;
    76         temp = *(arr + i);
    77         *(arr + i) = *(arr + j);
    78         *(arr + j) = temp;
    79       }
    80     }
    81   }
    82 }
  • 相关阅读:
    .NET逻辑分层架构总结
    ASP.NET MVC 4 的JS/CSS打包压缩功能-------过滤文件
    c#实现浏览器端大文件分块上传
    fckeditor如何能实现直接粘贴把图片上传到服务器中?
    web编辑器直接粘贴图片实现
    富文本编辑器直接粘贴图片实现
    百度ueditor编辑器直接粘贴图片实现
    百度编辑器直接粘贴图片实现
    fckeditor直接粘贴图片实现
    wangEditor直接粘贴图片实现
  • 原文地址:https://www.cnblogs.com/zjhangia/p/10230165.html
Copyright © 2020-2023  润新知