4月1日携程笔试

4月1号携程
第一题
#include <iostream>
#include <vector> 
#include<string>
#include<sstream>
using namespace std;
int main(void) {
	vector<vector<char> >res;
	vector <char> vi;
	
	string line;
	getline(cin, line);
	stringstream ss(line);
	vector<string> v;
	string x;
	while (ss >> x)
	{
		v.push_back(x);

		//cout << x;
	}
	

	for (int i = 0;i < v.size();i++)
	{
		for (int j = 0;j < v[i].size();j++)
		{
			if (j == 1)
			{
				if (v[i][j] >= 'a'&&v[i][j] <= 'z')
				{
					v[i][j] = v[i][j] - 'a' + 'A';
					cout << v[i][j];
				}
				else {
					cout << v[i][j];
				}
			}
			else {
				cout << v[i][j];
			}
		}
		if (i == v.size()-1)
		{  return 0;
		}
		cout << " ";
	}
	
	return 0;
}
第二题
#include <iostream>
#include <vector>
#include <numeric>
#include <limits>
#include<sstream>
using namespace std;


/*请完成下面这个函数,实现题目要求的功能
当然,你也可以不按照下面这个模板来作答,完全按照自己的想法来 ^-^
******************************开始写代码******************************/
bool sumInteger(int a, int b, int c) {
	if (a + b == c || a + c == b || b + c == a)
	{
		return true;
	}
	return false;
}
/******************************结束写代码******************************/


int main() {
	bool res = false;
	string line;
	getline(cin, line);
	stringstream ss(line);
	vector<int> v;
	int x;
	while (ss >> x)
	{
		v.push_back(x);
	}
	if (v.size() < 3)
	{
		cout << "false" << endl;
		return 0;
	}
	for (int i = 0;i < v.size() - 2;i++)
	{
		for (int j = i + 1;j < v.size() - 1;j++)
		{
			for (int k = j + 1;k < v.size();k++)
			{
				res = sumInteger(v[i],v[j],v[k]);
				if (res == true)
				{
					cout << "true"<< endl;
					return 0;
				}
			}
		}
	}

	cout <<"false" << endl;

	return 0;

}第三题只过了60%,2 2
0 1  和  1 1
1 1      1 1
的情况容易算重或少算,需改进。图的算法还没怎么看。


#携程春招##携程##笔试题目#
全部评论

相关推荐

球球别再泡了:坏,我单9要了14
点赞 评论 收藏
分享
评论
3
1
分享
牛客网
牛客企业服务