博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode (14) - Longest Common Prefix
阅读量:2182 次
发布时间:2019-05-02

本文共 1165 字,大约阅读时间需要 3 分钟。

Write a function to find the longest common prefix string amongst an array of strings.

char* longestCommonPrefix(char** strs, int strsSize) {    int min_length = 0, min_index=0, i, j,tmp ;    int  flag=1;    if (strsSize == 0) return "";    if (strsSize == 1) return strs[0];        if ((strlen(strs[0])) > 0)         min_length = strlen(strs[0]);            for (i = 0; i < strsSize; i++) {      // 首先找出最短的长度,因为最长前缀是拿着最短的字符串去比较        tmp=strlen(strs[i]);        if (tmp < min_length) {            min_length = tmp;            min_index = i;        }    }    if (min_length == 0) return "";           char* ret = malloc((min_length)*sizeof(char));    *ret="";    for (j = 0; j < min_length; j++) {    //遍历最短字符串的每个字符        for (i = 0; i < strsSize; i++) {    //遍历字符串数组,和最短字符串的每个字符作比较,如果发现有不相等的,就跳出两层for循环            if (strs[min_index][j] != strs[i][j]) {                flag = 0;                printf("%d", flag);                break;            }        }            if (flag==1) {            ret[j]=strs[min_index][j];        } else {            ret[j]='\0';            return ret;        }    }    ret[j]='\0';    return ret;}

Note:  其实不用找出最短的字符串,任意取字符串作比较即可。

转载地址:http://xoxkb.baihongyu.com/

你可能感兴趣的文章
Java并发编程:线程池的使用
查看>>
redis单机及其集群的搭建
查看>>
Java多线程学习
查看>>
检查Linux服务器性能
查看>>
Java 8新的时间日期库
查看>>
Chrome开发者工具
查看>>
【LEETCODE】102-Binary Tree Level Order Traversal
查看>>
【LEETCODE】106-Construct Binary Tree from Inorder and Postorder Traversal
查看>>
【LEETCODE】202-Happy Number
查看>>
和机器学习和计算机视觉相关的数学
查看>>
十个值得一试的开源深度学习框架
查看>>
【LEETCODE】240-Search a 2D Matrix II
查看>>
【LEETCODE】53-Maximum Subarray
查看>>
【LEETCODE】215-Kth Largest Element in an Array
查看>>
【LEETCODE】241-Different Ways to Add Parentheses
查看>>
【LEETCODE】312-Burst Balloons
查看>>
【LEETCODE】232-Implement Queue using Stacks
查看>>
【LEETCODE】225-Implement Stack using Queues
查看>>
【LEETCODE】155-Min Stack
查看>>
【LEETCODE】20-Valid Parentheses
查看>>