LeetCode 14 最长公共前缀 (C语言)

LeetCode 14 最长公共前缀 (C语言)

一. 题目
在这里插入图片描述
二. 思路
纵向比较,看所有字符串的第 i 个字符是否一致,若一致就比较下一个字符,直到出现不一致时,结束比较,返回之前一致的字符串。

三.代码

char * longestCommonPrefix(char ** strs, int strsSize){  /*(tip 1)*/
    int count = 0;

    if (strsSize == 0) return "";     // 若为空字符,直接返回"" 

    if (strsSize == 1) return strs[0];    // 若数组长度为1,则第一个就是最长公共前缀 

    while (1) {
        for (int i = 1; i <= strsSize - 1; i ++ ) {
/*(tip 2)*/ if (strs[0][count] != strs[i][count] || strs[0][count] == '\0' || strs[i][count] == '\0') {  
				strs[0][count] = '\0';
        		return strs[0];
            }
        }
        count ++;
    }
    return;
}

执行结果
在这里插入图片描述

四. 注释

Tips:
tip 1 : char ** strs 表示一个二维字符数组,这里可以理解为字符串数组,数组中的每个元素均为字符串
tip 2 : 从第二个字符串开始 将每个字符串的第count个元素与第一个字符串的第count个元素进行比较,且 若待比较的字符串中有空字符,直接返回空字符。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值