2017春招去哪儿笔试
来源:互联网 发布:网络大电影方案 编辑:程序博客网 时间:2024/05/18 07:27
不是很难,但是 lz 很菜。。。
第一题
题解
#include <iostream>#include <stdlib.h> #include <stdio.h> #include <queue>#include <string.h>#define N 1000using namespace std; typedef struct BiTNode { int data; struct BiTNode *lchild,*rchild; } BiTNode,* BITree; void LevelOrderTraversal(BiTNode* R1){ queue<BiTNode*> Q; int flag=0; BiTNode* T; T=R1; int i=0; if (R1==NULL) { return; } Q.push(T); while (!Q.empty()) { T=Q.front(); if (!flag) { flag=1; }else { cout<<" "; } cout<<T->data; Q.pop(); if (T->lchild!=NULL) { Q.push(T->lchild); } if (T->rchild!=NULL) { Q.push(T->rchild); } }}BiTNode* createBiTree(int *pre, int *in, int n) { int i = 0; int n1 = 0,n2 = 0; int m1 = 0,m2 = 0; BiTNode*node = NULL; int lpre[N],rpre[N]; int lin[N],rin[N]; if (n == 0) { return NULL; } node = (BiTNode*)malloc(sizeof(BiTNode)); if (node==NULL) { return NULL; } memset(node,0,sizeof(BiTNode)); node->data = pre[0]; for (i = 0;i<n;i++) { if ((i<=n1)&&(in[i]!=pre[0])) { lin[n1++] = in[i]; } else if(in[i]!=pre[0]) { rin[n2++] = in[i]; } } for (i = 1;i < n;i++) { if (i< (n1+1)) { lpre[m1++] = pre[i]; } else { rpre[m2++] = pre[i]; } } node->lchild = createBiTree(lpre,lin,n1); node->rchild = createBiTree(rpre,rin,n2); return node; } int main() { int m; cin>>m; int preNode[m]; int inNode[m]; int ch; BiTNode* root=NULL; for(int i=0;i<m;i++){ cin>>preNode[i]; } for(int i=0;i<m;i++){ cin>>inNode[i]; } root = createBiTree(preNode,inNode,m); LevelOrderTraversal(root); return 0; }
第二题
是一个进制转换,以 0-25 来表示 a-z,26 进制输入一个字符串将其转换成 10 进制并输出,lz 用 java 写的,但是只过了 80% 的测试用例。
import java.util.Scanner;public class Main { public static void main(String[] args) { String buffer=null; Scanner sc=new Scanner(System.in); while(sc.hasNextLine()) { buffer=sc.nextLine(); if(buffer.startsWith("a")){ System.out.println(0); } else{ System.out.println(letterToNum(buffer)); } } } public static long letterToNum(String str) { char[] letter = str.toUpperCase().toCharArray(); // 拆分字符串 //System.out.println(letter[0]); long reNum = 0; int power = 1; int num = letter.length; //System.out.println(num); // 得到最后一个字母的尾数值 reNum += charToNum(letter[num - 1]); //System.out.println(reNum); if (num >= 2) { for (int i = num - 1; i > 0; i--) { power = 1; for (int j = 0; j < i; j++) // 幂,j次方,应该有函数 { power *= 26; } reNum += (power * (charToNum(letter[num - i - 1]))); // 最高位需要加1,中间位数不需要加一 } } return reNum; } private static int charToNum(char ch) { return ch - 'A'; }}
第三题没来地看,但是有人说是leetcode的原题,平时代码敲得少。。。
0 0
- 2017春招去哪儿笔试
- 去哪儿2017校园招聘笔试题
- 去哪儿笔试解决方案
- 【去哪儿】笔试
- 20170401去哪儿笔试
- 去哪儿笔试题
- 2017去哪儿网校招笔试题(一)
- 2017去哪儿网在线笔试(二)
- 去哪儿网笔试题
- 去哪儿网笔试题
- 去哪儿2013笔试编程
- 去哪儿笔试:身份证分组
- 去哪儿笔试:filename extension
- 去哪儿笔试:统计字符
- [笔试练习]去哪儿笔试题
- 【笔试练习】去哪儿笔试题
- 去哪儿2017校园招聘笔试题——获得文件扩展名filename extension
- 2014去哪儿校招笔试
- POJ 3281 (网络流)
- html 字体围绕图片效果
- 将HH:mm:ss格式的时间转换成分钟数
- PAT-A-1006. Sign In and Sign Out (25)
- 查找序列最宽尖峰——含代码
- 2017春招去哪儿笔试
- socket通信
- hdu 2604 矩阵快速幂
- 堆排序
- spring4.0 @PropertySource读取配置文件
- linux ping不通的解决办法
- Java Annotation的RetentionPolicy介绍
- JVM笔记
- eclipse的Tomcat插件配置