0
点赞
收藏
分享

微信扫一扫

华为Java面试题


1.程序实现目标: 输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果。


    程序要求:该字符串只包含小写字母,若其值加5后的字符值大于'z',将其转换成从a开始的字符。



package com.xcbeyond;  
  
/** 
 * @author xcbeyond 
 * 2015-5-7下午10:37:43 
 * 1.程序实现目标: 输入一个字符串,将其各个字符对应的ASCII值加5后,输出结果。 
 * 程序要求:该字符串只包含小写字母,若其值加5后的字符值大于'z',将其转换成从a开始的字符。 
 */  
public class StringParseASCII {  
  
    public static void main(String[] args) {  
        System.out.print(stringParseASCII("abx"));  
    }  
      
    public static String stringParseASCII(String str){  
        StringBuffer result = new StringBuffer();  
        char tmp;  
        for(int i = 0;i<str.length();i++){  
            tmp = (char)(str.charAt(i)+5);  
            if(tmp > 'z') {  
                result.append('a');  
            }else {  
                result.append(tmp);  
            }  
        }  
          
        return result.toString();  
    }  
  
}


2.程序实现目标:求一个整型数组中元素的平均值,并统计其中大于和小于此平均值的元素的个数。


  程序要求:输入:整型数组中的元素个数及各个元素。


                     输出:整型数组中元素的平均值,大于和小于此平均值的元素的个数。



package com.xcbeyond;  
  
import java.util.Arrays;  
  
/** 
 *  
 * @author xcbeyond 
 * 2015-5-7下午11:06:29 
 *2.程序实现目标:求一个整型数组中元素的平均值,并统计其中大于和小于此平均值的元素的个数。 
 *程序要求: 
 *  输入:整型数组中的元素个数及各个元素。 
 *  输出:整型数组中元素的平均值,大于和小于此平均值的元素的个数。 
 */  
public class CountAvg {  
    public static void main(String[] args) {  
        int[] array = {1,23,4,13,6};  
        System.out.println(Arrays.toString(array)+"的平均值:"+avg(array)+"\n" +  
                "大于和小于平均值元素的个数分别为:"+Arrays.toString(countAvg(array)));  
  
    }  
    public static int[] countAvg(int[] array) {  
        int gt = 0; //grater than  
        int lt = 0; //less than  
        int[] result = {0,0};  
        int average = avg(array);  
        for(int i = 0;i<array.length;i++) {  
            if(array[i]>average) {  
                gt++;  
            }else if(array[i]<average) {  
                lt++;  
            }  
        }  
        result[0] = gt;  
        result[1] = lt;  
        return result;  
          
    }  
    /** 
     * average 
     * @param array 
     * @return 
     */  
    public static int avg(int[] array) {  
        int average = 0;  
        int sum = 0;  
        for(int i = 0 ;i<array.length;i++) {  
            sum += array[i];  
        }  
          
        average = sum/array.length;  
        return average;  
    }  
  
}  
3、手动输入一个存储整数的数组,要求输出数组里面的2个最大值。

   实例: 

             输入:1,2,5,9,84,3,2

             输出:84,9



package com.xcbeyond;  
  
import java.util.Arrays;  
/** 
 * @author <span style="font-family:Calibri;">xcbeyond</span> 
 * 2015-5-7下午11:35:13 
 *3、手动输入一个存储整数的数组,要求输出数组里面的2个最大值。 
 *  实例:  
 *      输入:1,2,5,9,84,3,2 
 *      输出:84,9 
 */  
public class FindMaxTwoNum {  
    public static void main(String[] args) {  
        int[] array = {1,2,5,9,84,3,2};  
        System.out.println("数组"+Arrays.toString(array)+"里面最大的2个数为:");  
        findMaxTwoNum(array);  
<span style="font-family:Calibri;">                                     //方法二:  
                                    //   
                </span> }  
    public static void findMaxTwoNum(int[] array) {  
        int[] result = {0,0};  
        for(int i = 0 ;i<array.length;i++) {  
            for(int j = 0;j<array.length-i-1;j++) {  
                if(array[j]<array[j+1]) {  
                    int tmp;  
                    tmp = array[j];  
                    array[j] = array[j+1];  
                    array[j+1] = tmp;  
                }  
            }  
        }  
          
        System.out.println(array[0]+"、"+array[1]);  
    }  
  
}  
4、回文数字判断。

题目描述:

    有这样一类数字,他们顺着看和倒着看是相同的数,例如:121,656,2332等,这样的数字就称为:回文数字。编写一个函数,判断某数字是否是回文数字。

    要求实现方法:

public String isPalindrome(String strIn);

【输入】strIn: 整数,以字符串表示;

【返回】true: 是回文数字;

              false: 不是回文数字;


【注意】只需要完成该函数功能算法,中间不需要有任何IO的输入输出



package com.xcbeyond;  
  
import java.util.Scanner;  
  
/** 
 * @author xcbeyond 
 * 2015-5-10下午03:46:56 
 *4、回文数字判断。 
 *题目描述: 
 *  有这样一类数字,他们顺着看和倒着看是相同的数,例如:121,656,2332等,这样的数字就称为: 
 *  回文数字。编写一个函数,判断某数字是否是回文数字。 
 */  
public class IsPalindrome {  
    public static void main(String[] args) {  
        System.out.print("请输入一个回文数字:");  
        Scanner console  = new Scanner(System.in);  
        String numStr = console.nextLine();  
        if(isPalindrome(numStr)) {  
            System.out.println(numStr+"是回文数字!");  
        }else{  
            System.out.println(numStr+"不是回文数字!");  
        }  
          
    }  
      
    public static boolean isPalindrome(String str){  
        boolean result = false;  
        for(int i = 0 ;i<str.length()/2-1;i++) {  
            if(str.charAt(i) == str.charAt(str.length()-1-i)) {  
                result = true;  
            }  
        }  
          
        return result;  
    }  
  
}  

5、要求:随机打印50个随机(4-10长度)的字符串,要求字符串包含的范围是所有的英文字母包含大小写和数字,按照编码顺序排序,每行打印4个,要求首字符对齐

 


package com.xcbeyond;  
  
import java.util.HashSet;  
import java.util.Set;  
  
/** 
 *  
 * @author xcbeyond 
 * 2015-5-10下午04:05:42 
 *5、要求:随机打印50个随机(4-10长度)的字符串,要求字符串包含的范围是 
 *    所有的英文字母包含大小写和数字,按照编码顺序排序,每行打印4个,要求首字符对齐 
 */  
public class RandomStr {  
    public static void main(String[] args) {  
        Set<String> setStr = new HashSet<String>();  
        for(int i = 0 ;i<50;i++) {  
            setStr.add(randomStr(5));  
        }  
          
        int count = 1;  
        for(String i:setStr){  
            System.out.print(i+" ");  
            if(count%4 == 0) {  
                System.out.println();  
            }  
            count++;  
        }  
    }  
    /** 
     * @param strLen:随机字符串的长度 
     */  
    public static String randomStr(int strLen) {  
        char[] str = new char[strLen];  
        int i = 0;  
        while(i<strLen) {  
            int f = (int)Math.random()*3;  
            if(f == 0) {  
                str[i] = (char)('a' + Math.random()*26);  
            }else if(f == 1) {  
                str[i] = (char)('A' + Math.random()*26);  
            }else {  
                str[i] = (char)('0' + Math.random()*10);  
            }  
            i++;  
        }  
          
        return new String(str);  
    }  
}  

6.手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。提示(可以用Map)

实例:

输入:aaabbbccc

输出:a 3

           b 3

           c 3


package com.xcbeyond;  
  
import java.util.HashMap;  
import java.util.Map;  
  
/** 
 *  
 * @author xcbeyond 
 * 2015-5-10下午04:47:45 
 * 6.手动输入一个字符串,仅限小写字母,统计并输出每个字符在字符串中出现的次数,并输出。 
 *  提示(可以用Map) 
 *  实例: 
 *      输入:aaabbbccc 
 *      输出: a 3 
 *                  b 3 
 *            c 3 
 */  
public class GetCharCount {  
    public static void main(String[] args) {  
        String str = "aaabbbrcc";  
        String reg = "^[a-z]*$";  
        if (str.matches(reg)) {  
            Map<Character, Integer> map = getCharCount(str);  
            for (Map.Entry<Character, Integer> e : map.entrySet()) {  
                System.out.println(e.getKey() + ": " + e.getValue());  
            }  
        }else {  
            System.out.println("输入的字符不合法,不是小写字母");  
        }  
    }  
    public static Map<Character,Integer> getCharCount(String str) {  
        Map<Character,Integer> map = new HashMap<Character, Integer>();  
        char[] arr = str.toCharArray();  
        for(int i = 0;i<str.length();i++) {  
            if(!map.containsKey(arr[i])) {  
                map.put(arr[i], new Integer(1));  
            }else {  
                map.put(arr[i],map.get(arr[i])+1);  
            }  
              
        }  
        return map;  
          
    }  
}  
 
7、要求实现方法public String addTwoBigNumber(String s1,string s2)

 大数相加,注意处理异常

 

public class Test{

public String addTwoBigNumber(String s1,string s2)

{

    return "";

}

 

public static void main(String[] args)

{

     Test test = new Test();

     test.addTwoBigNumber("123456789","987654321")

 

}

}

 

8、比较二维数组列最小值,组成一个新数组返回。(实现核心算法,不需要使用IO)

输入:intArr = {{5,6,1,16},{7,3,9}}

输出:intArrs ={1,3}


package com.xcbeyond;  
  
import java.util.Arrays;  
  
/** 
 * @author xcbeyond 
 * 2015-5-10下午09:09:20 
 *8、比较二维数组列最小值,组成一个新数组返回。(实现核心算法,不需要使用IO) 
 *  输入:intArr = {{5,6,1,16},{7,3,9}} 
 *  输出:intArrs ={1,3} 
 */  
public class GetColMin {  
    public static void main(String[] args) {  
        int[][] arr = {{5,6,1,16},{7,3,9}};  
        System.out.println(Arrays.toString(getColMin(arr)));  
    }  
      
    public static int[] getColMin(int[][] arr) {  
        int[] minArr = new int[arr.length];  
        for(int i = 0;i<arr.length;i++) {  
            int[] tmp = arr[i];  
            Arrays.sort(tmp);  
            minArr[i] = tmp[0];  
        }  
        return minArr;  
          
    }  
  
}  
9. 输入:a aa,cat tiger.123dd 

输出: tiger

功能描述:键盘输入一句话

               输出一句话中最常的单词,如果最长的出现多次,返回第一个。

               这句话只包含数字字母和标点。


package com.xcbeyond;  
  
import java.util.ArrayList;  
import java.util.Scanner;  
  
/** 
 *  
 * @author xcbeyond 
 * 2015-5-10下午09:45:03 
 *9. 输入:a aa,cat tiger.123dd  
 *     输出: tiger 
 *      功能描述:键盘输入一句话 
 *      输出一句话中最常的单词,如果最长的出现多次,返回第一个。 
 *      这句话只包含数字字母和标点。 
 */  
public class GetLongString {  
    public static void main(String[] args) {  
        System.out.println("请输入一句话:");  
        Scanner console = new Scanner(System.in);  
        String str = console.nextLine();  
        System.out.println("最长的单词为:"+getLongString(str));  
    }  
    public static String getLongString(String str) {  
        String[] wordStr = str.split("[ ,.0-9]");  
        int sum = 0;  
        ArrayList<String> result = new ArrayList<String>();  
        for(int i = 0;i<wordStr.length;i++) {  
            if(sum<wordStr[i].length()) {  
                sum = wordStr[i].length();  
                result.add(wordStr[i]);  
            }  
        }  
        return result.get(result.size()-1);  
          
    }  
  
}  

10. 功能描述:将字符串中的字母全部替换成字母的下一个字母,

要是最后一位是z或Z则替换为a或A。

输入:aBxyZ

输出:bCyzA


package com.xcbeyond;  
/** 
 *  
 * @author xcbeyond 
 * 2015-5-10下午10:11:02 
 *10. 功能描述: 
 *      将字符串中的字母全部替换成字母的下一个字母,要是最后一位是z或Z则替换为a或A。 
 *             输入:aBxyZ 
 *      输出:bCyzA 
 */  
public class NextString {  
    public static void main(String[] args) {  
        String str = "aBxyZ";  
        System.out.println(nextString(str));  
    }  
      
    public static String nextString(String str) {  
        String result = "";  
        char[] arr = str.toCharArray();  
        for(int i = 0;i<arr.length;i++) {  
            if(arr[i] == 'z' || arr[i] == 'Z') {  
                arr[i] = (char)(arr[i]-25);  
            }else if(arr[i]<='z'&&arr[i]>='a' || arr[i]<='Z'&&arr[i]>='A') {  
                arr[i] = (char)(arr[i]+1);  
            }  
        }  
          
        return String.valueOf(arr);  
    }  
  
}

举报

相关推荐

0 条评论