2015小明参加实习笔试笔记
2015-05-19 00:00
465 查看
摘要: 暑假即将到来,想找份实习,于是乎参加了部分笔试,简单的记记。
题目1:2015-5-19下午参加某某公司的笔试题(Java开发),要求实现将输入的句子倒序输出。比如输入“I Love You ”,返回“You Love I”。
显然,首先应该将输入的句子存储在一个字符串数组中。
一开始想了老半天不知道怎么实现输入控制,就是实现将输入的句子存在字符串数组中。怎么实现呢?
我当场是没有这么做的,索性直接以相应的字符串数组作为入口参数实现句子逆序输出,这个简单。代码如下:
但是回来想想这是不应该的,要实现将输入的一堆以空格分隔的字符串存储在数组中应该是简单的,于是就打开IDE开始尝试了。。。试了很久,中间过程省略,结果如下,如果太笨请别笑,告诉我你的答案哈!!谢谢!
运行结果:
I Love You
You Love I
题目2:
/**
* 游戏,50个人围城一圈,编号1到50;
* 从1开始数,逢三或者逢三的倍数就退出,剩下的继续,直到剩下一个人。
* 求这个人的一开始的编号是多少?【其实游戏可以直接升级为N个人玩,逢M的倍数的游戏】
*/
50人玩的参考代码如下:
改进后的玩法,人数N_Person与游戏的特殊数值M由控制台输入。。
运行结果:
50 3
The Winner is NO.11.
题目3:
/**
* 输入数组,返回奇数在前偶数在后的数组。
*/
题目4:二叉树取镜像
题目5:只用一个for循环打印九九乘法表(只用一个for循环打印99乘法表)
九九乘法表运行结果:
1X1=1;
1X2=2; 2X2=4;
1X3=3; 2X3=6; 3X3=9;
1X4=4; 2X4=8; 3X4=12; 4X4=16;
1X5=5; 2X5=10; 3X5=15; 4X5=20; 5X5=25;
1X6=6; 2X6=12; 3X6=18; 4X6=24; 5X6=30; 6X6=36;
1X7=7; 2X7=14; 3X7=21; 4X7=28; 5X7=35; 6X7=42; 7X7=49;
1X8=8; 2X8=16; 3X8=24; 4X8=32; 5X8=40; 6X8=48; 7X8=56; 8X8=64;
1X9=9; 2X9=18; 3X9=27; 4X9=36; 5X9=45; 6X9=54; 7X9=63; 8X9=72; 9X9=81;
题目6:
题目1:2015-5-19下午参加某某公司的笔试题(Java开发),要求实现将输入的句子倒序输出。比如输入“I Love You ”,返回“You Love I”。
显然,首先应该将输入的句子存储在一个字符串数组中。
一开始想了老半天不知道怎么实现输入控制,就是实现将输入的句子存在字符串数组中。怎么实现呢?
我当场是没有这么做的,索性直接以相应的字符串数组作为入口参数实现句子逆序输出,这个简单。代码如下:
public static String[] UpsideDown (String[] StrTest) { int k = StrTest.length-1; String[] returnStrArr = new String[StrTest.length]; for (String str : StrTest) { returnStrArr[k] = str; k--; } for (int i = 0; i < StrTest.length; i++) { returnStrArr[k--] = StrTest[i]; } return returnStrArr; }
但是回来想想这是不应该的,要实现将输入的一堆以空格分隔的字符串存储在数组中应该是简单的,于是就打开IDE开始尝试了。。。试了很久,中间过程省略,结果如下,如果太笨请别笑,告诉我你的答案哈!!谢谢!
import java.util.Scanner; /** * 2015参加某某公司的笔试题(Java开发),要求实现将输入的句子倒序输出。 * @File InversionSentence.java * @date 2015年5月19日 * @auther Fzu_Xmu_bmw http://weibo.com/wangmb007 */ public class InversionSentence { public static void main(String[] args) {//来来来,测试一下 String[] TestStrArr = GetLineToStringArray(); String[] InversionStrArr = InversionStrArray(TestStrArr); for (String s : InversionStrArr) { System.out.print(s+" "); } } /** * 实现将输入的字符串数组存入数组并返回相应的字符串数组,输入的字符串以空格间隔。 * return Line ; Line 是一个字符串数组 * @author http://weibo.com/wangmb007 */ public static String[] GetLineToStringArray(){ String[] TempArray = new String[100]; Scanner inputLine = new Scanner(System.in); String s0 = inputLine.nextLine(); Scanner Input = new Scanner(s0); int cnt=0; while (Input.hasNext()) { TempArray[cnt] = Input.next(); cnt++; } String[] Line = new String[cnt]; for (int i = 0; i < cnt; i++) { Line[i]=TempArray[i]; } inputLine.close(); Input.close(); return Line; } /** * 实现将输入的字符串数组逆序存储并返回。 * @param inputStrArray * @return InversionStrArray * @author http://weibo.com/wangmb007 */ public static String[] InversionStrArray(String[] inputStrArray) { int k = inputStrArray.length-1; String[] InversionStrArray = new String[inputStrArray.length]; for (String str : inputStrArray) { InversionStrArray[k--] = str; } return InversionStrArray; } }
运行结果:
I Love You
You Love I
题目2:
/**
* 游戏,50个人围城一圈,编号1到50;
* 从1开始数,逢三或者逢三的倍数就退出,剩下的继续,直到剩下一个人。
* 求这个人的一开始的编号是多少?【其实游戏可以直接升级为N个人玩,逢M的倍数的游戏】
*/
50人玩的参考代码如下:
/** * @File WStest_PlayGame3mod.java * @date 2015年5月17日 厦门某某上市公司笔试(挺想去的) * @auther Fzu_Xmu_bmw */ /** * 游戏,N个人围城一圈,编号1到N; * 从1开始数,逢三或者逢三的倍数就退出,剩下的继续,直到剩下一个人。 * 求这个人的一开始的编号是多少? */ public class WStest_PlayGame3mod { public static void main(String[] args) { new WStest_PlayGame3mod().run(); } public void run() { int[] Test = new int[50]; for (int i = 0; i < Test.length; i++) {//给每个人编号1~N Test[i]=i+1; } for (int e : Test) { System.out.print(e+" "); } System.out.println(""); int[] Temp = Game(Test); for (int e : Temp) { if (e!=0) { System.out.print("The Winner is NO."+e+"."); } } } public int[] Game(int[] arr) { int arrLength = arr.length; if (arrLength<2) { return arr; } int flag=0,i=0,j=arrLength; while (j>1) { if(arr[i]!=0){ flag++; if (flag%3==0) { arr[i]=0; j--; } } i++; if (i==arrLength) { i=0; } } return arr; } }
改进后的玩法,人数N_Person与游戏的特殊数值M由控制台输入。。
import java.util.Scanner; /** * @File Game3mod.java * @date 2015年5月19日 * @auther Fzu_Xmu_bmw */ public class Game3mod { public static void main(String[] args) { new Game3mod().run(); } public void run() { Scanner fin = new Scanner(System.in); int N_Person = fin.nextInt(); int M = fin.nextInt(); int[] Temp = Game(N_Person,M); for (int e : Temp) { if (e!=0) { System.out.print("The Winner is NO."+e+"."); } } fin.close(); } public int[] Game(int N,int M) { int[] arr = new int ; for (int i = 0; i < arr.length; i++) { arr[i]=i+1; } int arrLength = N; if (arrLength<2) { return arr; } int flag=0,i=0,j=arrLength; while (j>1) { if(arr[i]!=0){ flag++; if (flag%M==0) { arr[i]=0; j--; } } i++; if (i==arrLength) { i=0; } } return arr; } }
运行结果:
50 3
The Winner is NO.11.
题目3:
/**
* 输入数组,返回奇数在前偶数在后的数组。
*/
/** * @File WStest_oddFirst.java * @date 2015年5月17日 * @auther Fzu_Xmu_bmw */ /** * 输入数组,返回奇数在前偶数在后的数组。 */ public class WStest_oddFirst { public static void main(String[] args) { new WStest_oddFirst().run(); } public void run() { int testArray[]={0,1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1,0}; int Tem[] = new int[testArray.length]; Tem = oddFirst(testArray); System.out.println("before:"); for (int y : testArray) { System.out.print(y+" "); } System.out.println(""); System.out.println("after:"); for (int x : Tem) { System.out.print(x+" "); } } public int[] oddFirst(int[] Arr) { int [] Temp = new int[Arr.length]; int temp_i=0; for (int a: Arr) { if (a%2 == 1) { Temp[temp_i++]=a; } } for (int a: Arr) { if (a%2 == 0) { Temp[temp_i++]=a; } } return Temp; } }
题目4:二叉树取镜像
/** * @File BMW_BinaryTree.java * @date 2015年5月19日 * @auther Fzu_Xmu_bmw */ package tree; import java.util.Stack; public class BMW_BinaryTree { private TreeNode root; private class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x){ val=x; } } /** * 递归创建二叉树 * @param node * @param data */ public void buildTree(TreeNode node,int data){ if(root == null){ root = new TreeNode(data); }else{ if(data < node.val){ if(node.left == null){ node.left = new TreeNode(data); }else{ buildTree(node.left,data); } }else{ if(node.right == null){ node.right = new TreeNode(data); }else{ buildTree(node.right,data); } } } } //中序 public void inOrderTraversal(TreeNode node){ if(node == null){ return; }else{ inOrderTraversal(node.left); System.out.print(node.val+" "); inOrderTraversal(node.right); } } //前序 //递归实现 public void preOrder(TreeNode biTree){ System.out.print(biTree.val+" "); TreeNode leftTree=biTree.left; if(leftTree!=null){ preOrder(leftTree); } TreeNode rightTree=biTree.right; if(rightTree!=null){ preOrder(rightTree); } } //非递归实现 public void non_preOrder(TreeNode biTree){ Stack<TreeNode> stack=new Stack<TreeNode>(); while(biTree!=null||!stack.isEmpty()){ while(biTree!=null){ System.out.print(biTree.val+","); stack.push(biTree); biTree=biTree.left; } if(!stack.isEmpty()){ biTree=stack.pop(); biTree=biTree.right; } } } //后序 public void postOrder(TreeNode biTree){ TreeNode leftTree=biTree.left; if(leftTree!=null){ postOrder(leftTree); } TreeNode rightTree=biTree.right; if(rightTree!=null){ postOrder(rightTree); } System.out.print(biTree.val+" "); } //得到镜像二叉树 public static void mirror(TreeNode root){ if(root == null){ return ; } if((root.left == null) && (root.right == null)){ return; } TreeNode temp = root.left; root.left = root.right; root.right = temp; mirror(root.left); mirror(root.right); } //test测试 public static void main(String[] args) { int[] a = {7,2,4,1,5,0,6,8,3,9}; BMW_BinaryTree bTree = new BMW_BinaryTree(); for (int i = 0; i < a.length; i++) { bTree.buildTree(bTree.root, a[i]); } System.out.println("前序遍历preOrder:"); bTree.preOrder(bTree.root); System.out.println(""); System.out.println("中序遍历inOrder:"); bTree.inOrderTraversal(bTree.root); System.out.println(""); System.out.println("后序遍历postOrder:"); bTree.postOrder(bTree.root); mirror(bTree.root); System.out.println(""); System.out.println("*取【镜像】之后*"); System.out.println("前序遍历preOrder:"); bTree.preOrder(bTree.root); System.out.println(""); System.out.println("中序遍历inOrder:"); bTree.inOrderTraversal(bTree.root); System.out.println(""); System.out.println("后序遍历postOrder:"); bTree.postOrder(bTree.root); } }
题目5:只用一个for循环打印九九乘法表(只用一个for循环打印99乘法表)
/** * 2015年5月27日 **公司笔试题 * 只用一个for循环打印九九乘法表 * @author Fzu_Xmu_bmw */ public static void Table_9_9() { for (int m=1,n= 1; m < 10;) { System.out.print(n+"X"+m+"="+n*m+";\t"); n++; if (n>m) { m++; n=1; System.out.println(""); } } }
九九乘法表运行结果:
1X1=1;
1X2=2; 2X2=4;
1X3=3; 2X3=6; 3X3=9;
1X4=4; 2X4=8; 3X4=12; 4X4=16;
1X5=5; 2X5=10; 3X5=15; 4X5=20; 5X5=25;
1X6=6; 2X6=12; 3X6=18; 4X6=24; 5X6=30; 6X6=36;
1X7=7; 2X7=14; 3X7=21; 4X7=28; 5X7=35; 6X7=42; 7X7=49;
1X8=8; 2X8=16; 3X8=24; 4X8=32; 5X8=40; 6X8=48; 7X8=56; 8X8=64;
1X9=9; 2X9=18; 3X9=27; 4X9=36; 5X9=45; 6X9=54; 7X9=63; 8X9=72; 9X9=81;
题目6:
相关文章推荐
- 阿里2015 实习笔试题笔记 分布式系统中的RPC请求经常出现乱序的情况
- 2015小米暑期实习笔试题_风口的猪-中国牛市(dp)
- 阿里巴巴 2015 实习笔试题 分布式系统中的RPC请求经常出现乱序的情况 写一个算法来将一个乱序的序列保序输出
- 360-2015暑假实习笔试 给定a,b字符串 求出b相对于a的相对路径
- 2015校招面试笔试题笔记
- 2015阿里实习招聘笔试题-自己尝试做的答案
- 2015小米暑期实习笔试题_懂二进制(位运算)
- 阿里巴巴 2015 实习笔试题 分布式系统中的RPC请求经常出现乱序的情况
- 阿里巴巴 2015 实习笔试题 分布式系统中的RPC请求经常出现乱序的情况 写一个算法来将一个乱序的序列保序输出
- 名企笔试:2015小米暑期实习(风口的猪-中国牛市)(2017-04-09 算法爱好者)
- 笔试真题解析 ALBB-2015 算法工程师实习生机试
- 2015阿里巴巴暑期实习笔试题解析--删除数据列表的一行
- 2015腾讯暑期实习笔试题目
- 网易游戏2015雷火事业部实习招聘会笔记
- 阿里2015春季实习校招笔试题-自己尝试做的答案
- 阿里巴巴java研发2015实习笔试题--生产者消费者并发线程安全
- 2015腾讯暑期实习招聘在线笔试(问答题)
- 2015去哪网实习招聘笔试题
- 百世集团2015暑期实习研发工程师笔试题
- 名企笔试:2015小米暑期实习笔试题(二进制) 2017-04-05 算法爱好者