算法题每日一练---第69天:最长公共前缀

简介: 编写一个函数来查找字符串数组中的最长公共前缀。

3.png

一、问题描述


编写一个函数来查找字符串数组中的最长公共前缀。

如果不存在公共前缀,返回空字符串 ""


题目链接:最长公共前缀


二、题目要求


样例 1

输入:strs= ["flower","flow","flight"]
输出:"fl"


样例 2

输入:strs= ["dog","racecar","car"]
输出:""解释:输入不存在公共前缀。


考察

字符串、前缀求值建议用时15~35min


三、问题分析

这一题其实不算难,最长的公共前缀,以样例 1为例,我们就选第一个字符串flower作为基底。

首先,下面左侧代表基底的前缀,左侧代表其他的字符串是否包含这个前缀 1包含 0不包含最左侧代表截止到目前最长的公共前缀。

f111fl112flo102flowflower

当出现0的时候就不需要向下遍历了,你想想前面的字符都不包含的话,你再向后遍历有什么用呢?

60.png


四、编码实现


classSolution {
public:
stringlongestCommonPrefix(vector<string>&strs) {
inti,j,n=strs.size();//初始化数据strings=strs[0],t,k="";//将第一个字符串作为基底,k作为子串前缀和for(i=0;i<s.size();i++)
        {
t=s.substr(0,i+1);//依次向后遍历,前缀和逐步增大for(j=1;j<n;j++)//遍历其它数组元素            {
if(strs[j].find(t)!=0)//只要不存在这个前缀returnk;//直接输出拜拜            }
k=t; //否则更新一下数据        }
returnk;
    }
};

五、测试结果61.png

相关文章
|
6月前
|
算法
算法编程(二十五):检查单词是否为句中其他单词的前缀
算法编程(二十五):检查单词是否为句中其他单词的前缀
62 0
|
1月前
|
算法
数据结构与算法二:栈、前缀、中缀、后缀表达式、中缀表达式转换为后缀表达式
这篇文章讲解了栈的基本概念及其应用,并详细介绍了中缀表达式转换为后缀表达式的算法和实现步骤。
44 3
|
1月前
|
存储 算法 Java
数据结构与算法学习八:前缀(波兰)表达式、中缀表达式、后缀(逆波兰)表达式的学习,中缀转后缀的两个方法,逆波兰计算器的实现
前缀(波兰)表达式、中缀表达式和后缀(逆波兰)表达式的基本概念、计算机求值方法,以及如何将中缀表达式转换为后缀表达式,并提供了相应的Java代码实现和测试结果。
46 0
数据结构与算法学习八:前缀(波兰)表达式、中缀表达式、后缀(逆波兰)表达式的学习,中缀转后缀的两个方法,逆波兰计算器的实现
|
1月前
|
算法 Java 程序员
【算法每日一练及解题思路】有n级台阶,一次只能上1级或2级,共有多少种走法?
本文深入解析了“爬楼梯问题”,探讨了递归与迭代两种解法,并提供了Java代码实现。通过分析问题本质,帮助读者理解动态规划技巧,提高解决实际编程问题的能力。关键词:Java, 算法, 动态规划, 爬楼梯问题, 递归, 迭代。
65 0
|
5月前
|
存储 算法 Java
【经典算法】LeetCode14:最长公共前缀(Java/C/Python3实现含注释说明,Easy)
【经典算法】LeetCode14:最长公共前缀(Java/C/Python3实现含注释说明,Easy)
40 1
|
6月前
|
自然语言处理 Rust 算法
【算法】14. 最长公共前缀(多语言实现)
编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。
|
6月前
|
算法 Java
[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读
[Java·算法·简单] LeetCode 14. 最长公共前缀 详细解读
45 0
|
6月前
|
存储 算法 程序员
【算法训练-字符串 一】【子串问题】最长无重复子串、最长回文子串、最长公共前缀
【算法训练-字符串 一】【子串问题】最长无重复子串、最长回文子串、最长公共前缀
67 0
|
存储 人工智能 算法
C++基础算法前缀和和差分篇
C++基础算法前缀和和差分篇
|
机器学习/深度学习 算法 测试技术
C++算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例
C++算法:前缀和、前缀乘积、前缀异或的原理、源码及测试用例