LeetCode_Easy心得:14. Longest Common Prefix(C语言)

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

/** 题目分析:输入一个二维字符串,要求输出它们前缀都相同的最长子字符串。 */

/** 例如在{"ABCD","ABCD1","ABCDEF","ABCC"}中间,返回的字符串是"ABC"。 */


/** 代码思路:既然是公共前缀子字符串,那必然每一组一维字符串都包含在其中,所以可以将第一组字符串整个赋给临时字符串变量temp,然后通过temp与其他几组一维字符串比较,每次比较都必须从第一个字符开始,如果遇到不同字符,本题比较结束,并且temp截短至不同字符出前一位置,直至temp与所有一维字符串变量比较结束,此时再返回temp;

*/



char* longestCommonPrefix(char** strs , int strsSize) {
    char* temp;         //创建一个临时字符指针变量temp
    int i, j;           
    
    if(strsSize <= 0)   //判断输入一维数组是否大于0,即是否存在这个二维字符串;
        return "";
    
    temp = strs[0];     //将第一组字符串变量直接赋给temp;
    for(i=1; i<strsSize; i++){ 
        
        j=0;            //每次都时从字符串第一个字符比较;
        
        while(temp[j] && strs[i][j] && temp[j]==strs[i][j])     //每组一位字符串与temp变量进行比较
            j ++;
        
        temp[j] = '\0'; //比较结束之后截短temp;
    }
    
    return temp;
}

/** LeetCode运行时间:4ms±2ms  */

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值