zoukankan      html  css  js  c++  java
  • 【leetcode】字符的最短距离

    int* shortestToChar(char * S, char C, int* returnSize){
        int strLength = strlen(S);//字符串长度
        int *arr=(int*)malloc(sizeof(int)*strLength);
        int prev = -strLength;
        int i;
        for(i=0;i<strLength;i++){
            if(S[i] == C) prev = i;
            arr[i] =  i-prev;
        }
        for(i = prev-1;i>=0;i--){
            if(S[i] == C) prev = i;
            if(arr[i] > prev-i) arr[i] =  prev-i;
        }
        *returnSize = strLength;
        return arr;
    }
    int MinVal(int i,int* Cpst,int pst)
    {
        int min = abs(Cpst[0] - i);
        for (int j=1; j<pst; j++)
        {
            if (abs(Cpst[j] - i) < min) min = abs(Cpst[j] - i);
            if (!min) return 0;
        }
        return min;
    }
    int* shortestToChar(char * S, char C, int* returnSize){
        int* Cpst = (int*)calloc(strlen(S),sizeof(int));
        int* arr = (int*)calloc(strlen(S),sizeof(int));
        int pst = 0;
        int i;
        for (i=0; i<strlen(S); i++)
        {
            if (S[i] == C) Cpst[pst++] = i;
        }
        for (i=0; i<strlen(S); i++)
        {
            arr[i] = MinVal(i,Cpst,pst);
        }
        *returnSize = strlen(S);
        return arr;
    }
    
  • 相关阅读:
    Java序列化与反序列化
    Java中的反射机制
    Java中读文件操作
    Java中写文件操作
    判断单链表是否有环
    Java继承与组合
    Java类初始化
    堆排序
    希尔排序
    插入排序
  • 原文地址:https://www.cnblogs.com/ganxiang/p/13620742.html
Copyright © 2011-2022 走看看