C语言 | Leetcode C语言题解之第49题字母异位词分组

题目:

C语言 | Leetcode C语言题解之第49题字母异位词分组_第1张图片

题解:

/*
    1.将字符串原串与副本进行绑定成一个节点

    2.对字符串副本进行按ascii码表进行从小到大排序

    3.按照字符串进行比较排序

    4.合并
*/
typedef struct Node{
    char*s;
    char*s_vice;
    int len;
}Node;

void sortShellChar(char*s,int len){
    for(int distance=len/2;distance!=0;distance/=2){
        for(int i=distance;i=0&&s[pre]>c){
                s[pre+distance]=s[pre];
                pre-=distance;
            }
            if(pre+distance!=i){
                s[pre+distance]=c;
            }
        }
    }
}

void sortShellString(Node*arr,int size){
   for(int distance=size/2;distance!=0;distance/=2){
       for(int i=distance;i=0&&strcmp(arr[pre].s_vice,node.s_vice)<0){
               arr[pre+distance]=arr[pre];
               pre-=distance;
           }
           if(pre+distance!=i){
               arr[pre+distance]=node;
           }
       }
   }
}

char*** groupAnagrams(char** strs, int strsSize, int* returnSize, int** returnColumnSizes) {
    Node*strsNode=malloc(sizeof(Node)*strsSize);
    int strsNodeSize=strsSize;
    for(int i=0;i

你可能感兴趣的:(分享,C语言,Leetcode,题解)