斐讯k2做网站,wordpress如何新建页面模板,从事网站类网站建设的,甘肃省建设厅执业资格注册中心网站通知14. 最长公共前缀
14. 最长公共前缀
代码仓库地址#xff1a; https://github.com/slience-me/Leetcode
个人博客 #xff1a;https://slienceme.xyz 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀#xff0c;返回空字符串 。
示例 …14. 最长公共前缀
14. 最长公共前缀
代码仓库地址 https://github.com/slience-me/Leetcode
个人博客 https://slienceme.xyz 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀返回空字符串 。
示例 1
输入strs [flower,flow,flight]
输出fl示例 2
输入strs [dog,racecar,car]
输出
解释输入不存在公共前缀。提示
1 strs.length 2000 strs[i].length 200strs[i] 仅由小写英文字母组成
方案1暴力解 历史最差代码没有之一 第一种纯暴力解很多不合理的地方考场上只是为了拿基础分就是结果导向性解题方式 class Solution {
public:string longestCommonPrefix(vectorstring strs) {if (strs[0] ){return ;}int maxsize -1;for (const auto item: strs){maxsize max(maxsize, static_castint(item.size()));}string res;for (int i 0; i maxsize; i) {char temp strs[0][i];string tmp ;for (int j 0; j strs.size(); j) {if (temp strs[j][i]){couttemp: temp strs[j][i]: strs[j][i] i: i j: jendl;tmp strs[j][i];} else {tmp ;goto outerLoop; // 跳到外层循环的标签位置}}res.append(tmp);}outerLoop:return res;}
}; 执行用时分布 48ms 击败6.69%使用 C 的用户 消耗内存分布9.37MB 击败15.46%使用 C 的用户 方案2 初次优化这种方案比上一种更加合理去除掉了很多冗余的代码 i s.length()关键条件 s[i] ! tmp class Solution {
public:string longestCommonPrefix(vectorstring strs) {string res;for (int i 0; i 200; i) {if (i strs[0].length())return res; //处理空情况char tmp strs[0][i];for (const auto s: strs) {if (i s.length())return res;// 超出了则说明当前字符串长度不够 flower flow i5 4if (s[i] ! tmp)return res;}res tmp;}return res;}
};执行用时分布 0ms 击败100%使用 C 的用户 消耗内存分布 9.04MB 击败63.16%使用 C 的用户 方案3 最后的优化没有太大的提升 class Solution {
public:string longestCommonPrefix(vectorstring strs) {string ans ;// 用第一个单词的字符一次遍历全部字符串for (int i 0; i strs[0].size(); i) {bool flag true;for (int j 1; j strs.size(); j) {if (i strs[j].size() || strs[j][i] ! strs[0][i]) {flag false; // 合二为一break; // 退出里循环}}if (flag) {ans strs[0][i];} else {break; // 退出外循环}}return ans;}
};执行用时分布 4ms 击败%使用 C 的用户 消耗内存分布 9.12MB 击败46.03%使用 C 的用户