Java常见面试题

本文精选了企业面试中常出现的算法题目,并提供了详细的解答方案,包括字符串比较、随机字符生成与排序及人数筛选等典型问题。
 


下面是某些企业常见的算法面试试题,现总结如下。

1.比较两个字符串如果不等返回True
答案: 
 

Java代码 

 

public class StringDemo {    

   

    private static String a = "abc";    

    private static String b = "abcg";    

   

   public static boolean equalString() {    

        if (a.equals(b)) {    

            return false;    

       } else {    

                 

            return true;    

        }    

    }    

   public static void main(String[] args) {    

       StringDemo  sd = new StringDemo();    

         System.out.println("主要考察返回Boolean变量和字符串比较使用的方法?+sd.equalString());    

     }    

 }   


 



2.随机产生20个字符并且排序? 

答案: 
 

Java代码 

 

 

import java.util.HashSet;  

 import java.util.Iterator;  

 import java.util.Random;  

 import java.util.Set;  

 import java.util.TreeSet;  

  

 public class RadomDemo {  

 /** 

  * 随机产生20个字符串并且字符串不能重复 且进行排序 

  * @param random 

  * @param len 

  * @return 

  */  

    public Set getChar(){  

        

       Set numberSet01 = new HashSet();  

         Random rdm = new Random();  

        char ch;  

       while(numberSet01.size()<20){   

          int rdGet = Math.abs(rdm.nextInt())%26+97;//产生97到122的随机数a-z值   

            ch=(char)rdGet;  

           numberSet01.add(ch);  

            //Set中是不能放进重复的值的,当它有20个时,就满足你的条件了    

         return numberSet01;  

       }  

     public static void main(String[] args) {  

       RadomDemo rd = new RadomDemo();  

        Set numberSet01=rd.getChar();  

           

        Set numberSet = new TreeSet();   

         numberSet.addAll(numberSet01);  

         for(Iterator it=numberSet01.iterator();it.hasNext();){   

          System.out.print(it.next());   

            }   

         System.out.println();  

       for(Iterator it=numberSet.iterator();it.hasNext();){   

            System.out.print(it.next());   

             }   

    }  

 }  


 



3.50个人围成一圈数到三和三的倍数时出圈,问剩下的人是谁?在原来的位置是多少? 


答案: 

 

Java代码   

 

import java.util.Iterator;    

 import java.util.LinkedList;    

    

 public class YouXi {    

   public static int removeNM(int n, int m) {    

       LinkedList ll = new LinkedList();    

         for (int i = 0; i < n; i++)    

             ll.add(new Integer(i + 1));    

.         int removed = -1;    

         while (ll.size() > 1) {    

             removed = (removed + m) % ll.size();    

           ll.remove(removed--);    

        }    

       return ((Integer) ll.get(0)).intValue();    

   }    

  

  public static void main(String[] args) {    

       System.out.println(removeNM(50, 3));    

     }    

 }   


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值