一、题目
网址:14.最长公共前缀。
题目描述:
编写一个函数来查找字符串数组中的最长公共前缀。
示例 1:
输入: ["flower","flow","flight"]
输出: "fl"
示例 2:
输入: ["dog","racecar","car"]
输出: ""
解释: 输入不存在公共前缀。
二、程序
#include <iostream>
#include <string>
#include <vector>
using namespace std;
string longestCommonPrefix(vector<string>& strs)
{
if (strs.size()==0)
{
return "";
}
for (int i=0;i<strs[0].size();i++)
{
string temp=strs[0];
for (int j=0;j<strs.size()-1;)
{
if (strs[j][i]==strs[j+1][i])
{
j++;
}
else
{
return temp.substr(0,i);
}
}
}
return strs[0];
}
int main()
{
string res; //存储返回的结果
vector<string> str;
str.resize(3);
for (int i=0;i<str.size();i++)
{
string s="";
getline(cin,s);
str.push_back(s);
}
res=longestCommonPrefix(str);
if (res.size()==0)
{
printf("输入不存在的公共前缀。\n");
}
else
{
for (int i=0;i<res.length();i++)
{
printf("%c",res[i]);
}
}
system("pause");
return 0;
}
结果: