news 2026/5/10 13:29:15

【剑斩OFFER】算法的暴力美学——最长公共前缀

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【剑斩OFFER】算法的暴力美学——最长公共前缀


一、题目描述

二、算法原理

思路:先找前两个字符串的公共前缀,再拿着这个公共前缀的,去跟剩余的字符串比较,然后不断的更新这个公共前缀:

三、代码实现

第一种解法:

class Solution { public: string longestCommonPrefix(vector<string>& strs) { if(strs.size() < 2) return strs[0]; string same; string s1 = strs[0],s2 = strs[1]; for(int i = 0; i < min(s1.size(),s2.size()); i++)//找到第一个字符和第二个字符串的公共字符串 { if(s1[i] == s2[i]) same += s1[i]; else break; } for(int i = 2; i < strs.size(); i++)//拿着公共字符串去和其他字符串进行比较 { string& s = strs[i]; string tmp; for(int j = 0; j < min(same.size(),s.size()); j++) { if(s[j] == same[j]) tmp += s[j]; else break; } same = tmp;//更新公共字符串 if(same.empty()) return ""; } return same; } };

第二种解法:

class Solution { public: string longestCommonPrefix(vector<string>& strs) { string same;//公共前缀 for(int i = 0; i < strs[0].size(); i++) { char ch = strs[0][i]; for(int j = 0; j < strs.size();j++) { char ch1 = strs[j][i]; if(ch1 != ch) return same;//找到公共前缀的极限,直接返回 same ,因为后面的都不是公共前缀 } same += ch; } return same; } };
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 13:33:45

深度学习毕设项目:基于python深度学习的手势识别数字

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/5/1 6:55:41

拒绝繁琐配置,推荐一款简洁易用的知识管理工具sward

中国区Confluence Server即将停止销售&#xff0c;今天给大家推荐一款国产开源免费的开源平替方案 - sward。 1、产品简介 sward是一款国产的且免费开源的知识管理工具&#xff0c;包含知识库管理、目录管理、文档管理、markdown管理、文档的评审与版本维护等模块。产品页面简…

作者头像 李华
网站建设 2026/5/9 21:04:09

vscode出现中文乱码?

第一次用vscode打开代码会出现中文注释因识别不了而乱码的情况&#xff0c;类似这样printf(“张三\n”);1.单击软件左下角设置&#xff08;类似齿轮&#xff09;的按钮在出现的搜索框里输入&#xff1a;Files.autoGuessEncoding&#xff0c;按回车键确定。关闭vscode,然后重新打…

作者头像 李华
网站建设 2026/5/1 6:49:24

HTML实用的网页代码大全

HTML 实用网页代码大全&#xff08;2025-2026 常用片段精选&#xff09; 以下整理了前端开发中最常用、最实用的 HTML 代码片段&#xff0c;涵盖基础结构、SEO、响应式、表单、媒体、多功能组件等。代码均基于 HTML5 标准&#xff0c;兼容现代浏览器&#xff0c;可直接复制使用…

作者头像 李华