题目:假设有两个包含整数的vector对象,编写一段程序,检验其中一个vector对象是否是另一个的前缀。
例如:两个vector对象元素分别为:0、1、1、2和0、1、1、2、3、5、8
结果:返回真
解题思路:
1、先得出较短的vector的长度shortLen;
2、比较两个vector对象前shortLen是否相同。
代码实现:
#include<iostream>
#include<string>
#include<vector>
using namespace std;
bool ComparePrefix(vector<int> v1, vector<int> v2)
{
int shortLen = min(v1.size(), v2.size());
for (int i = 0; i < shortLen; i++)
{
if (v1[i] != v2[i]) //一旦出现不一致,就立即返回false
{
return false;
}
}
return true;
}
int main()
{
vector<int> v1, v2;
v1 = { 0,1,1,2 };
v2 = { 0,1,1,2,4,5 };
bool B = ComparePrefix(v1, v2);
if (B == true)
{
cout << "结果为真!" << endl;
}
else
{
cout << "结果为假!" << endl;
}
system("pause");
return 0;
}