文档章节

2015小明参加实习笔试笔记

王明波
 王明波
发布于 2015/05/19 20:35
字数 1628
阅读 18
收藏 0

题目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[N];
  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:

© 著作权归作者所有

王明波
粉丝 1
博文 19
码字总数 15116
作品 0
厦门
程序员
私信 提问
不聊奶茶妹,咱就聊聊京东2016年校招那些事儿

京东2016校招北京场面试差不多快到尾声了,想来互联网工作的小鲜肉估计offer也拿得差不多了。今年在我自媒体上开了一个校招专栏,回答校招问题和写笔试面试经验。这个过程中,我也收获了很多...

pmcaff2008
2017/12/13
0
0
18届清华硕士狂拿18家互联网公司offer

2018校招总结(外企,国内大公司,国内创业公司) 本篇是我参加2018春招实习和秋招的求职经历,除了笔试面试中遇到的一些问题,更多的是一些个人想法。 春招和秋招面了不少公司,实习offer有...

野梦M
2017/12/18
0
1
华为实习面试总结

前言 这次华为实习从3月16号投递简历就正式开始了,中间经历了在线笔试,综合测评,技术面试和综合面试共四个阶段,在最后一关综合面试的时候挂了,这样直接宣布了本次实习之旅正式结束。回顾...

尼阿卡
2016/04/10
1K
3
【面经】360产品运营岗位面经

360产品运营面经 360也是很早就参加了笔试流程的,答完笔试还对360公司有了些好感,毕竟笔试题出的还算是到位。流程也比较透明,全程可以在微信公众号上查询到进度。楼主是27号晚四点在酒仙桥...

牛客网
2018/05/17
0
0
大三计算机学生暑期实习是否很重要?

逛oschina有段日子咯,第一次发帖,见笑了哈。 我是一个本科计算机专业的大三学生,马上就大四了,10月份就开始校园招聘了。之前听过前辈说大三暑假要去实习一下,对找工作很有帮助。 于是就...

yangphoenix
2011/06/08
2.8K
6

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
今天
5
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
今天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
今天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
今天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部