力扣14. 最长公共前缀(字符串)

力扣14. 最长公共前缀

https://leetcode-cn.com/problems/longest-common-prefix/

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

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

示例 1:

输入: ["flower","flow","flight"]
输出: "fl"
示例 2:

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

所有输入只包含小写字母 a-z 。

 

思路:垂直扫描

复杂度分析

时间复杂度:O(S),S 是所有字符串中字符数量的总和。

最坏情况下,输入数据为 nn 个长度为 mm 的相同字符串,算法会进行 S=m∗n 次比较。可以看到最坏情况下,本算法的效率与算法一相同,但是最好的情况下,算法只需要进行 n*minLen次比较,其中 minLen是数组中最短字符串的长度。

空间复杂度:O(1),我们只需要使用常数级别的额外空间。。

#include "stdafx.h"
#include
#include 
using namespace std;

class Solution {
public:
	string longestCommonPrefix(vector& strs)
	{
		//鲁棒性,确保字符串数组strs里面至少有一个字符串
		if (strs.size()==0)
		{
			return "";
		}
		int i = 0;
		string result;
		while (true)
		{
			auto temp = strs[0][i];
			//判断第一个字符串的当前字符是否到末尾了,结束
			if (temp == '\0')
			{
				return result;
			}
			for (int j = 1;j strs;
	strs.push_back("f");
	strs.push_back("low");
	strs.push_back("flight");
	//没有字符串
	vector strs1;
	auto result = s.longestCommonPrefix(strs);
	return 0;
}

 

你可能感兴趣的:(力扣14. 最长公共前缀(字符串))