一、要求实现三个功能,调用“edit ”进行数据录入,调用“rollback”进行撤销,必须录入之后方可撤销,否则输出E,调用“restore”进行撤销恢复

同时,必须在撤销之后才可以进行恢复。

输入第一行为一共的操作次数,接下来的N行,每行代表一个命令,输出为N行,为每一步操作之后的显示结果。

输入:7,rollback,edit 1,edit 2,edit 3,restore,rollback,restore

输出:E,1,2,E,3,2,3

void Print(vector<int> &ve,int n)
{stack<int> st_push;stack<int> st_rash;for(int i = 0; i < n*2; i += 2){if(ve[i] == 0){st_push.push(ve[i+1]);cout<<ve[i+1]<<endl;}else if(ve[i] == 1){if(st_push.empty()){cout<<"E"<<endl;}else{int tmp = st_push.top();st_push.pop();st_rash.push(tmp);cout<<st_push.top()<<endl;}}else{if(st_rash.empty()){cout<<"E"<<endl;}else{int tmp = st_rash.top();st_rash.pop();st_push.push(tmp);cout<<tmp<<endl;}}}
}
void main()
{string s;int n;cin>>n;vector<int> ve;getchar();//不可省for(int i = 0; i < n; ++i){getline(cin,s);if(strncmp(s.c_str(),"edit",4) == 0){ve.push_back(0);ve.push_back(s[s.size() - 1] - '0');}else if(strncmp(s.c_str(),"rollback",8) == 0){ve.push_back(1);ve.push_back(1);}else if(strncmp(s.c_str(),"restore",7) == 0){ve.push_back(2);ve.push_back(2);}}Print(ve,n);
}

二、统计二叉树中每一行的节点的个数,定义结构体如下:

struct InviteNode
{
int user_id;
InviteNode *children[10];
};
构建一棵树太复杂了,就只写出,判断的代码吧,欢迎指教。

struct InviteNode
{int user_id;InviteNode *children[10];
};
void Print_invite_levels(InviteNode *root)
{int num = 0;queue<InviteNode *> qu;qu.push(root);while(!qu.empty()){int size = qu.size();for(int i = 0; i < size; ++i){InviteNode* tmp = qu.front();qu.pop();for(int i = 0; i < 10; ++i){if(tmp->children[i] != NULL){num++;qu.push(tmp->children[i]);}}}cout<<num<<endl;num = 0;}
}

三、输入一个数字,输出从0到该数字的字典序排序

例如,输入102,输出0,1,10,100,101,102,11,12......19,2,20,21....99

int Get_len(int number)
{int num = 0;while(number != 0){num++;number /= 10;}return num;
}
char *Get_string1(int num,char *str)
{if(num == 0){str[0] = '0';str[1] = '\0';}else{int n = Get_len(num);str[n] = '\0';while(num){char ch = num % 10 + '0';str[--n] = ch;num /= 10;}}return str;
}
void main()
{int number;cin>>number;int n = Get_len(number);char **ar = new char*[number + 1];for(int i = 0; i <= number; ++i){ar[i] = new char[n + 1];if(ar[i] == NULL){while(--i >= 0){delete []ar[i];}break;}}for(int i = 0; i <= number; ++i){ar[i] = Get_string1(i,ar[i]);}for(int i = 0; i <= number; ++i){for(int j = i+1; j <= number; ++j){if(strcmp(ar[i],ar[j]) > 0){char *tmp = ar[i];ar[i] = ar[j];ar[j ] = tmp;}}}for(int i = 0; i <= number; ++i){cout<<ar[i]<<endl;}
}

这个方法,空间复杂度有些太大了,而且时间复杂度也不低,欢迎指教更好的方法。

百词斩2018校招笔试题相关推荐

  1. 数据分析真题日刷 | 欢聚时代2018校招笔试题-产品经理/数据分析/游戏运营/市场专员 A卷

    今日真题 欢聚时代2018校招笔试题-产品经理/数据分析/游戏运营/市场专员 A卷(来源:牛客网) 题型 客观题:单选5道,不定项选择10道 主观题:问答4道 完成时间 90分钟 牛客网评估难度系数 ...

  2. 大疆网上测评题库_一份完整的大疆2018校招笔试题和面经送给大家~

    听说周日大疆就要笔试了,今年的秋招来的有点让人猝不及防啊,牛客的各种讨论群里都弥漫着一种恐惧的氛围,我是谁,我在哪,我该怎么办(惊恐脸)..... 哈哈哈 没关系,作为一个刚刚踏上工作岗位的老学长,去 ...

  3. 大疆2018校招笔试题

    大疆的题,挺复杂,最起码描述是的... 底下的答案仅供参考,没有一道是全部AC的. //两个小车,走一步能量消耗1,方向为1向右,-1为向左,首先输入路途长度,然后输入两行,每行第一个为小车的能量,第 ...

  4. 2018校招笔试题——网易编程题跳石板

    题目与要求如下所示: [编程题] 跳石板 时间限制:1秒 空间限制:32768K 小易来到了一条石板路前,每块石板上从1挨着编号为:1.2.3....... 这条石板路要根据特殊的规则才能前进:对于小 ...

  5. 武汉光迅科技22校招笔试题(武汉邮科院控股国企上市大厂Python的txt文本处理笔试题)

    武汉光迅科技22校招笔试题(武汉邮科院控股国企上市大厂Python的txt文本处理笔试题) 资源: https://download.csdn.net/download/weixin_53403301 ...

  6. 百度2019校招笔试题

    百度2019校招笔试题 1. 探险安排 小明要为n个人计划一次火星的探险,其中一个重要的任务是为每个参与者安排食物.仓库里面有m个能用一天的食物包裹,每个食物包裹有不同的类型ai.每个人每天必须用且只 ...

  7. 关于python类的继承正确的说法是_2017美团点评的运维岗校招笔试题,测测你会几题?...

    原标题:2017美团点评的运维岗校招笔试题,测测你会几题? 1.数据库:以下哪项不是HASH索引的特征? A MySQL不能确定在两个值之间大约有多少行 B 不能使用hash索引来加速ORDER BY ...

  8. 【美团校招笔试题】去除字符串首尾空格,中间多个空格只保留一个

    要求: 这是本人参加美团校招在线考试笔试题,如果此行为违反了美团校招笔试题商业保密性,请与本人联系. 思路:用一个while循环扫描整个字符串,用pStart字符指针指向整个字符串首地址,如果遇到首部 ...

  9. 小米运维部14年校招笔试题A的个人答案

    15年准备实习生面试时答的题,仅供参考 具体题目详见  http://www.tuicool.com/articles/eYRZBr http://noops.me/?p=1154 一.linux基础 ...

最新文章

  1. Android WebView 和 javaScript的互相调用(一)
  2. HDU - 5788 Level Up(主席树+dfs序+树状数组)
  3. mongodb 教程一
  4. 爬取了BAT等一线大厂近10000+招聘需求,总结出3-5年+Java开发的高频技术需求
  5. 利用react-router实现按需加载、登录验证、刷新组件。。。
  6. VB 文件未找到: 'C:\WINDOWS\system32\ieframe.dll\1'--继续加载工程吗?
  7. linux 怎么添加文件类型,如何在Linux/Unix上添加基于文件类型的文件扩展名?
  8. Java 的下载安装教程
  9. 人工智能 ppt_我体验了下人工智能PPT制作平台,这6个功能让我惊喜!
  10. 尚学堂JAVA高级学习笔记_2/2
  11. 用html制作四种九九乘法表,JavaScript制作九九乘法表
  12. 《短线交易大师》的读书笔记
  13. 联想拯救者Y7000P触摸板无法使用
  14. 安装VS2015卡在创建系统还原点
  15. 程序与数学:平方根计算与牛顿迭代法
  16. MPL2.0协议简介——Mozilla Public License Version 2.0
  17. 国内外对于GaN中Fe相关点缺陷结构的局域特性的研究进展
  18. 软件工程之QA管理(好软件系列二)
  19. IDEA 2021.2 取消 双击shift 全局搜索
  20. Android学习之Socket多个客户端即时通信聊天

热门文章

  1. PS新建文档Ctrl+N
  2. Flask源码阅读-第四篇(flask\app.py)
  3. Android4.4 内置应用默认打开无障碍服务
  4. 2021年最新ABAQUS复合材料建模仿真与应用
  5. springmvc--sso单点登录cas统一身份认证器
  6. filebeat收集java日志_filebeat采集多个项目日志 | 吴老二
  7. LoadRunner破解
  8. 【Games104】 渲染中光和材质的数学魔法
  9. Libiconv移植到Hi3536
  10. JavaScript脚本语言快速入门