【2019 CVTE】 春招 C/C++ 软件开发笔试题

选择题

选择题大概考了:哈希索引,排序算法复杂度,vector 迭代器失效,虚函数、虚表、虚指针,动态绑定,给定二叉树的前序遍历,中序遍历让求可能的后续遍历,
Linux 文件权限与控制,文件控制块分为主部和次部的原因,get post 方法区别,大概就这么多啦,全是不定向选择题,但是跟往常不一样,编程题在第6到题就跑出来了,第二道编程题在倒数第二道,其他全是不定项选择题

一、题目描述

一个由数字组成的字符串长度为L,判断字符串是否为存在长度为k的区间,在该区间内的数字排序后是连续的(相同数字视为连续),若存在,给出存在几个这样的区间。
输入描述:
一个长度为L的由数字组成的字符串S,以及数据区间的长度k。

输出描述:
满足上述要求区间的个数。

输出实例:
	123456789 2
	1345321898 3

本人 AC 代码:

#include 
#include 
#include 
using namespace std;

bool check(string str){
	int size = str.size;
	for(int i = 0; i < size; i++){
		for(int j = i; j < size - 1 - i; j++){
			if(str[j + 1] == s[j] + 1 || s[j] == s[j + 1]){
				continue;
			} else{
				return false;
			}
		}
	}
	return true;
} 

int numsSub(string str, int index){
	string tmp;
	int count = 0;
	int size = str.size();
	for(int i = 0; i <= size - index; i++){
		tmp = str.substr(i, index);
		sort(tmp.begin(), tmp.end());
		if(check(tmp)){
			count ++;
		}
	}
	return count;
}

int main(){
	string str;
	cin >> str;
	int index;
	cin >> index;
	cout << numsSub(str, index) << endl;
	return 0;
} 

二、题目描述

题目具体不明确了,直接上测试用例

输入描述:
输出描述:
测试用例:
	192.168.70.10
	192.168.253.128
输出:255.255.0.0

本人 AC 代码:

#include 
#include 
#include 

using namespace std;
string (const char* lhs, const char* rhs) {
	for (int i = 0; i < strlen(lhs); i++) {
		for (int j = 0; j < strlen(rhs); j++) {
			if (lhs[i] == rhs[j]) {
				if (lhs[i] == '.') {
					count++;
				}	
			}	
		}	
	}
	if (count == 1) {
		cout << "255.0.0.0";
	} else if (count == 2) {
		cout << "255.255.0.0";
	} else if (count == 3) {
		cout << "255.255.255.0";
	} else if (count == 4) {
		cout << "255.255.255.255";
	} else {
		cout << "0.0.0.0";
	}
}

你可能感兴趣的:(【个人感悟】)