华为实习生笔试练习4.9
来源:互联网 发布:淘宝一千多的硅胶娃娃 编辑:程序博客网 时间:2024/04/29 16:03
1. 给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到 output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到 output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。例如:input[] = {3, 6, 1, 9, 7} output[] = {3, 7, 9, 6, 1}; input[] = {3, 6, 1, 9, 7, 8} output[] = {1, 6, 8, 9, 7, 3}
#include<iostream>#include<algorithm>using namespace std;bool Compare(int a, int b){if (a > b)return true;return false;}int main(){int n;int s[100];int s_sort[100];int f_ptr, q_ptr;cin >> n;f_ptr = q_ptr = n / 2;for (int i = 0; i < n; i++){cin >> s[i];}sort(s, &s[n], Compare);s_sort[q_ptr] = s[0];f_ptr--;q_ptr++;int index = 1;while (index<n){s_sort[f_ptr--] = s[index++];if (q_ptr < n)s_sort[q_ptr++] = s[index++];}for (int i = 0; i < n; i++)cout << s_sort[i] << " ";system("pause");return 0;}
2.操作系统任务调度问题。操作系统任务分为系统任务和用户任务两种。其中,系统任务的优先级 < 50,用户任务的优先级 >= 50 且 <= 255。优先级大于 255 的为非法任务,应予以剔除。现有一任务队列 task[],长度为 n,task 中的元素值表示任务的优先级,数值越小,优先级越高。函数 scheduler 实现如下功能,将 task[] 中的任务按照系统任务用户任务依次存放到 system_task[] 数组和 user_task[] 数组中(数组中元素的值是任务在 task[] 数组中的下标),并且优先级高的任务排在前面,优先级相同的任务按照入//队顺序排列(即先入队的任务排在前面),数组元素为-1 表示结束。例如:task[] = {0,30, 155, 1, 80, 300, 170, 40, 99} system_task[] = {0, 3, 1, 7, -1} user_task[] = {4, 8, 2,6, -1}// 函数接口 void scheduler(int task[], int n, int system_task[], int user_task[])
#include<iostream>#include<vector>#include<algorithm>using namespace std;class Task{public:Task(int p, int i){ priority = p; id = i; };int getPri(){ return priority; }int getId(){ return id; }private:int priority;int id;};bool Compare(Task a, Task b){if (a.getPri() < b.getPri())return true;return false;}void schedual(int* task, int* system_task, int* user_task, int n){int sys_ptr = 0, user_ptr = 0;vector<Task> schedual_queue;for (int i = 0; i < n; i++){Task tmpTask = Task(task[i], i);schedual_queue.push_back(tmpTask);}sort(schedual_queue.begin(), schedual_queue.end(), Compare);for (int i = 0; i < n; i++){if (schedual_queue.at(i).getPri() < 50)system_task[sys_ptr++] = schedual_queue.at(i).getId();else if (schedual_queue.at(i).getPri() <= 255)user_task[user_ptr++] = schedual_queue.at(i).getId();}system_task[sys_ptr] = user_task[user_ptr] = -1;int i = 0;while (system_task[i] != -1)cout << system_task[i++]<<" ";cout << endl;i = 0;while (user_task[i] != -1)cout << user_task[i++] << " ";}int main(){int n;int task[100];int system_task[100], user_task[100];cin >> n;for (int i = 0; i < n; i++)cin >> task[i];schedual(task, system_task, user_task, n);system("pause");return 0;}
3. 问题描述:在给定字符串中查找所有特定子串并删除,如果没有找到相应子串,则不作任何操作。要求实现函数: int delete_sub_str(const char *str, const char *sub_str, char *result_str)【输入】 str:输入的被操作字符串 sub_str:需要查找并删除的特定子字符串【输出】 result_str:在 str 字符串中删除所有 sub_str 子字符串后的结果【返回】 删除的子字符串的个数
#include<iostream>#include<string>using namespace std;int compare(const char* str, const char* substr){int index = 0;while (substr[index] != 0){if (str[index] != substr[index])return -1;index++;}return index;}int delete_sub_str(const char *str, const char *sub_str, char *result_str){int count = 0;int ptr = 0,r_ptr=0;while (str[ptr] != 0){if (str[ptr] == sub_str[0]){int index = compare(&str[ptr], sub_str);if (index>=0){count++;ptr = ptr + index;}elseresult_str[r_ptr++] = str[ptr++];}else result_str[r_ptr++] = str[ptr++];}result_str[r_ptr] = 0;return count;}int main(){char oldstring[100], deletestring[100];char resultstring[100];cin >> oldstring;cin >> deletestring;int num;num = delete_sub_str(oldstring, deletestring, resultstring);cout << num << endl;cout << resultstring;system("pause");return 0;}
- 华为实习生笔试练习4.9
- 华为实习生在线笔试
- 华为实习生笔试题
- 华为笔试2014---练习
- 4.10 华为笔试练习
- 华为、腾讯实习生招聘笔试、面试经验
- 【笔试面试】2015华为软件开发实习生
- 华为 2017 实习生招聘笔试题
- 2017华为暑期实习生校招笔试
- 2017华为实习生笔试题汇总
- 2013-04-26-成都华为实习生招聘上机笔试
- 华为2016届实习生招聘(武汉)笔试
- 华为2016实习生招聘笔试题第三题--和尚挑水
- 华为2017实习生招聘笔试题-公司年会
- 华为2017实习生招聘笔试题-水仙花数
- 华为2017实习生招聘笔试题-任务调度
- 华为2018届校招勇敢星实习生招聘笔试+面试经历
- [笔试练习]腾讯2017暑期实习生编程题
- Oracle 查询表信息(字段+备注)
- 左上三角蛇形矩阵
- Front end foundation course 3(css1)
- virtual虚函数
- jquery $("#id").click()
- 华为实习生笔试练习4.9
- 声音特征提取:MFCC向量
- kafka的生产者和消费者的理解
- leetcode - Insert Interval
- https原理
- 使用JS对form的内容验证失败后阻止提交
- Unity3d linux版本如果做Splash屏幕
- 汽车加油
- STL 源码分析 # stl_number #