第四次的面试题目 笔试题目 程序题目

"这篇博客包含两个C++代码实现。第一个代码实现了将字符串中每个单词的首字母转换为大写的函数,例如""assssssssssss""->""AssssSsssSsss""。第二个代码解决了一个出租车调度问题,确定最少需要多少辆出租车来满足不同时间段的乘客需求,例如{{2,6}
摘要由CSDN通过智能技术生成

1.题目 : 题目名字不记得去了, 题目的总结,就是有一个人的短信需要大写!, 

每个单词的首字母:

代码:

/******************************
*作者: she001 
*时间: 2022/10/23 
*题目: 大写语句的首字母, 列子 : assss  ssss  ssss --> Assss Ssss Ssss  
*字符串为空的时候,我们返回NULL, 
********************************/
#include<bits/stdc++.h>
using namespace std;

string fangfa_1(string a)
{
	if(a=="")
	{
		return NULL;
	}
	int n=a.size();
	for(int i=0;i<n;i++)
	{
		if(i==0 || a[i-1]==' ')
		{
			if(a[i]>=97)
			{
				a[i]=a[i]-32;
			}
		}
	}
	return a;
}


int main()
{
	string a="asss aaa aaa jkkk";
	string b=fangfa_1(a);
	cout<<b<<endl;;
	
}


2.出租车问题   

题目不记得去了, 题目的主要内容: 有一个出租车公司,在一个场地有一个业务,需要取接几个人,场地上的人的来去时间不同,每个出租车可以做无限个人,只要每一个人的时间没有交叉,看看需要几个出租车!

列子:

{ {2 ,6}, {3,5},{7,9} }       3个出租车

{ {1,2},{3,4},{5,6},{7,8}}   1个出租车

代码:

/******************************
*作者: she001 
*时间: 2022/10/23 
*题目: 出租车问题 
********************************/
#include<bits/stdc++.h>
using namespace std;


bool cmp(vector<int>a,vector<int>b)//排序  sort  的对比函数   对比规则:    //因为知道两个数据 
{
	if(a[0]!=b[0])//先对比第一个数据, 假如不同 
	{
		return a[0]<b[0];//升序排序  
	}
	else//第一个数据加入相同 
	{
		return a[1]<=b[1];//第二个数据 的对比 
	}
}

int  fangfa_1(vector< vector<int> >&a)
{
	int num=0;//要求派遣出租车的数量  
	int n=a.size();//获取顾客的数量
	//cout<<"顾客的数量: "<<n<<endl;
	if(n==0)
	{
		return 0;	
	} 
	if(n==1)
	{
		return 1;
	}
	//显示数据  看自己  需要 不  
	/*
	vector< vector<int> >::iterator it1=a.begin();
	for(it1=a.begin();it1!=a.end();it1++)
	{
		vector<int>it2=*it1;
		for(int i=0;i<2;i++)
		{
			cout<<it2.at(i)<<" "; 
		}
		cout<<endl;
	}
	*/
	//  a 里面的 vector<int>  数据  根据 第一个数据排序 由低到高   假如第一个数据相同  比第二个数据 
	sort(a.begin(),a.end(),cmp);//数据排序   第 cmp 函数的对比   
	//显示数据  看自己  需要 不 
	/* 
	vector< vector<int> >::iterator it1=a.begin();
	for(it1=a.begin();it1!=a.end();it1++)
	{
		vector<int>it2=*it1;
		for(int i=0;i<2;i++)
		{
			cout<<it2.at(i)<<" "; 
		}
		cout<<endl;
	}
	*/
	int aaa=0;//判断是否是第一辆车  
	int bbb=0; //匹配的数字 
	vector< vector<int> >::iterator ggg;//防止出现 bug 
	while(a.size()!=0)//利用动态数组的元素 删除的方法  来获取出租车的数量 
	{
		vector< vector<int> >::iterator it3=a.begin();
		aaa=0;//重置数据  下一个出租车的开始数据 
		bbb=0;//
		while(it3!=a.end())
		{
			vector<int>it4=*it3;
			if(aaa==0)//第一个数据直接  出租车获取数据  
			{
				aaa=1;	//第一个数据的判定直接关闭 
				bbb=it4[1]+1;//记录尾部数据   第二个可以搭乘顾客的数据的开始数据
				a.erase(it3);//删除这个数据, 遍历下一个数据  it3 删除当前数据 直接变为下一个数据 
			}
			else if(bbb<=it4[0])
			{
				bbb=it4[1]+1;	
				a.erase(it3);//删除这个数据, 遍历下一个数据
			}
			else
			{
				it3++;//这个数据没有匹配, 直接下一个元素	
			} 
		}
		num++;//出租车的数量加 1 
	}	
	return num;		//返回出租车的数量 
} 


int main()
{
	vector<int>a1;//建立顾客的模型   
	a1.push_back(1);//顾客的时间加载  
	a1.push_back(2);
	vector<int>a2;
	a2.push_back(1);
	a2.push_back(4);
	vector<int>a3;
	a3.push_back(3);
	a3.push_back(6);
	vector<int>a4;
	a4.push_back(7);
	a4.push_back(8);
	
	vector< vector<int> >q;//建立业务的产生 
	q.push_back(a1);
	q.push_back(a2);
	q.push_back(a3);
	q.push_back(a4);
	int n=fangfa_1(q);
	cout<<"n:  "<<n<<endl; 
	
	vector<int>b1;//建立顾客的模型   
	b1.push_back(1);//顾客的时间加载  
	b1.push_back(2);
	vector<int>b2;
	b2.push_back(3);
	b2.push_back(4);
	vector<int>b3;
	b3.push_back(5);
	b3.push_back(6);
	vector<int>b4;
	b4.push_back(7);
	b4.push_back(8);
	
	vector< vector<int> >q1;//建立业务的产生 
	q1.push_back(b1);
	q1.push_back(b2);
	q1.push_back(b3);
	q1.push_back(b4);
	int n1=fangfa_1(q1);
	cout<<"n1:  "<<n1<<endl; 

	
	
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值