当前位置: 首页 > news >正文

14.最长公共前缀-力扣(LeetCode)

题目:

解题思路:

        解决本题的关键点是确定扫描的方式,大体上有两种方式:横向扫描和纵向扫描。

        1、横向扫描:首先比较第一个字符串和第二个字符串,记录二者的公共前缀,然后用当前公共前缀与下一个字符串再次比较得出新的公共前缀,重复过程,直到所有字符串完成比较,或者中间过程中得到的公共前缀为空串时停止并返回。

        2、纵向扫描:共进行k轮比较(k大小不超过第一个字符串的长度,因为最长公共前缀不可能比传入的字符串还长)。在每一轮比较中,对所有字符串的第k位进行比较,如果出现不同,证明当前比较位前面的字符串为最长公共前缀,对最长公共前缀进行返回,否则比较下一轮。完成所有轮比较后,仍要进行一次返回,此时每个字符串及最长公共前缀都相同。

        在函数中,采用纵向扫描。动态开辟了空间用作返回最长公共前缀,这块空间的大小没有去求字符串的长度来决定,根据提示中的信息,取了一个长度最大值200,能够满足所有情况。这里利用将返回地址中提前存入第一个字符串、过程中判断并修改'\0'来实现对最长公共前缀的存储。

代码:

char *longestCommonPrefix(char **strs,int strsSize)
{if(strsSize == 0){return "";}char *returnStr = (char *)malloc(200);strcpy(returnStr,strs[0]);for(int j = 0; j < strlen(strs[0]); j++){for(int i = 1; i < strsSize; i++){if(returnStr[j] != strs[i][j]){returnStr[j] = '\0';return returnStr;}}}return returnStr;
}
http://www.lryc.cn/news/484211.html

相关文章:

  • 客户案例|智能进化:通过大模型重塑企业智能客服体验
  • Flink Job更新和恢复
  • 读多写少业务中,MySQL如何优化数据查询方案?
  • Bugku CTF_Web——点login咋没反应
  • attention 注意力机制 学习笔记-GPT2
  • 什么是HTTP,什么是HTTPS?HTTP和HTTPS都有哪些区别?
  • SkyWalking-安装
  • RabbitMQ运维
  • Go语言并发精髓:深入理解和运用go语句
  • 基于STM32的智能家居系统:MQTT、AT指令、TCP\HTTP、IIC技术
  • 分糖果(相等分配)
  • docker构建jdk11
  • 唐帕科技校园语音报警系统:通过关键词识别,阻止校园霸凌事件
  • 酒店行业数据仓库
  • A029-基于Spring Boot的物流管理系统的设计与实现
  • Python Day5 进阶语法(列表表达式/三元/断言/with-as/异常捕获/字符串方法/lambda函数
  • 一文了解Android的核心系统服务
  • Scala的Array(1)
  • [Linux] Linux信号捕捉
  • Elasticsearch的查询语法——DSL 查询
  • 开发语言中,堆区和栈区的区别
  • 驾校增加无人机培训项目可行性技术分析
  • JavaWeb后端开发知识储备1
  • ISUP协议视频平台EasyCVR视频设备轨迹回放平台智慧农业视频远程监控管理方案
  • 大数据新视界 -- 大数据大厂之 Impala 存储格式转换:从原理到实践,开启大数据性能优化星际之旅(下)(20/30)
  • 百度搜索AI探索版多线程批量生成TXT原创文章软件-可生成3种类型文章
  • ubuntu20.04 解决Pytorch默认安装CPU版本的问题
  • 名词解释-2-形状算数实验、潜在空间、3D生成模型
  • Android 使用python统计getevent按键
  • NVIDIA jetson查看资源占用情况,打印/保存资源使用情况日志