华为机试题

Posted winters1992

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了华为机试题相关的知识,希望对你有一定的参考价值。

http://www.nowcoder.com/ta/huawei?query=&asc=true&order=&page=1

 

无聊刷华为的题 大部分比较简单

答案如下

 

package org.huawei.test;

/**
 * Created by jonwinters1992 on 2016/10/3 0003.
 */


import java.util.*;
import org.junit.Test;

public class Huaweiexam {
    //@Test
    public void test() {
        int[] a = {2, 1, 323, 44, 233, 44432, 12321, 3231};
        int max = 0;
        int temp = 0;
        for (int i = 0; i < a.length; i++) {
            for (int j = i + 1; j < a.length; j++) {
                temp = a[j] - a[i];
                if (max < temp) {
                    max = temp;
                }
            }
        }
        System.out.println(max);
    }

    //@Test
    public void getLastWordLength() {
        String str = "hellwo dfda dafd dafdf daf";
        System.out.println(str.split(" ")[str.split(" ").length-1].length());
    }
    //@Test
    public void getTotalCountOf(){
        char a=‘A‘;
        String str="dfafAdDFADSFDAFsdfafsaffasffdas";
        int total =0;
        for (int i=0;i<str.length();i++){
            if (a == Character.toUpperCase(str.charAt(i)) ){
                total+=1;
            }
        }
        System.out.println(total);
    }
    //@Test
    public void getRandomNumber(){
        int [] array  = {233,32,123,1231,123,22,33,1232,112,2,1321,223,32,23123,123};
        Set<Integer> set = new HashSet<Integer>();
        for (int a:array){
            set.add(a);
        }
        List<Integer> list = new ArrayList<Integer>(set);
        Collections.sort(list);
        for(int a:list){
            System.out.println(a+",");
        }
    }
    //@Test
    public void printArray(){

        String str = "dafs dfasdf fdaf dfaf daf";
        String str2 = str.replaceAll(" ", "");


        for(int i=0;i< str2.length();i++){
            if(i>0&&i%8==0)
                System.out.println(str2.substring(i-8,i));
        }
        System.out.print(str2.substring(str2.length()-str2.length()%8, str2.length()));
        for(int i=0;i<8-str2.length()%8;i++){
            System.out.print(0);
        }
    }

    public int switchByAlpha(char alpha){

        switch(alpha){
            case ‘a‘:return 10;
            case ‘b‘:return 11;
            case ‘c‘:return 12;
            case ‘d‘:return 13;
            case ‘e‘:return 14;
            case ‘f‘:return 15;
            default:return 0;
        }
    }
    //@Test
    public void HexToDecimal(){
        String str = "0xdfa1";
        int j =1;
        int total = 0;
        for (int i = str.length() - 1; i >= 0; i--) {
            if (str.toCharArray()[i] != ‘x‘) {
                if (Character.isDigit(str.toCharArray()[i])) {
                    total += (Integer.valueOf(str.substring(i,i+1))) * j;
                } else {
                    total += switchByAlpha(str.toCharArray()[i]) * j;
                }
                j *= 16;
            } else {
                break;
            }
        }
        System.out.println(total);
    }

    //@Test
    public void SetAndQueue(){
        Queue<Character> queue = new LinkedList<Character>();
        Set<Character> set = new HashSet<Character>();
        String str ="12398731";
        for (int i = str.length() -1;i>=0;i--){
            if (!set.contains(str.toCharArray()[i])){
                queue.add(str.toCharArray()[i]);
                set.add(str.toCharArray()[i]);
            }
        }
        for (char c : queue){
            System.out.print(c);
        }
    }

    //@Test
    public void ReverseNumber(){
        int num = 1323432;
        String str = String.valueOf(num);

        Stack<Character> stack = new Stack<Character>();

        for(char c : str.toCharArray()){
            stack.add(c);
        }
        for (int i =0 ; i<str.length();i++){
            System.out.print(stack.pop());
        }
    }

    //@Test
    public void ReverseString(){
        String str = "dafsfasf";

        Stack<Character> stack = new Stack<Character>();

        for(char c: str.toCharArray()){
            stack.push(c);
        }

        for (char c:str.toCharArray()){
            System.out.print(stack.pop());
        }
    }

    //@Test
    public void ReverseWord(){
        String str="I am a boy";
        Stack<String> stack = new Stack<String>();
        for (String s:str.split(" ")){
            stack.push(s);
        }
        for(String s:str.split(" ")){
            System.out.print(stack.pop()+" ");
        }
    }
    //@Test
    public void StringSort(){
        String str = "fdad saf dsaf da feij afhlf";
        List<String> list = new ArrayList<String>();
        for(String s:str.split(" ")){
            list.add(s);
        }
        Collections.sort(list);
        for(String s:list){
            System.out.println(s);
        }
    }
    //@Test
    public void DecimalToBinaryAndCountNumberOf1(){
        int i = 25444445;
        int j = 0;
        while(i>=1){

            if (i%2==1){
                j++;
            }
            i /= 2;
        }
        System.out.println(j);
    }




    //////////////////////////////

    public char encodeUpcaseChar(char encode){
        encode = Character.toLowerCase(encode);
        if (encode == ‘z‘){
            return ‘a‘;
        }
        return (char)(encode+1);
    }

    public int encodeLowerCase(char encode){
        switch(encode){
            case ‘a‘:return 2;
            case ‘b‘:return 2;
            case ‘c‘:return 2;
            case ‘d‘:return 3;
            case ‘e‘:return 3;
            case ‘f‘:return 3;
            case ‘g‘:return 4;
            case ‘h‘:return 4;
            case ‘i‘:return 4;
            case ‘j‘:return 5;
            case ‘k‘:return 5;
            case ‘l‘:return 5;
            case ‘m‘:return 6;
            case ‘n‘:return 6;
            case ‘o‘:return 6;
            case ‘p‘:return 7;
            case ‘q‘:return 7;
            case ‘r‘:return 7;
            case ‘s‘:return 7;
            case ‘t‘:return 8;
            case ‘u‘:return 8;
            case ‘v‘:return 8;
            case ‘w‘:return 9;
            case ‘x‘:return 9;
            case ‘y‘:return 9;
            case ‘z‘:return 9;
        }
        return 0;
    }



    /////////////////////////////
    //@Test
    public void toEncodePassword(){
            String pass = "YUANzhi1987";//test case
            char tmp;
            char[] chars = pass.toCharArray();
            for (int i=0; i < chars.length;i++){
                tmp = chars[i];
                if (Character.isUpperCase(tmp)){
                    chars[i] = encodeUpcaseChar(tmp);
                }
                if (Character.isLowerCase(tmp)){
                    chars[i] = String.valueOf(encodeLowerCase(tmp)).toCharArray()[0];
                }
            }
        System.out.println(new String(chars));

    }
    //@Test
    public void emptyBol(){
        int num = 21;
        int total = 0;
        while (num >= 3){
            num = num /3;
            total+=num;
        }
        System.out.println(total+1);
    }
    //@Test
    public void deleteLowestFrequencyChar(){
        String str = "abcdddefghjuyr";
        char [] chars = str.toCharArray();
        Map<Character,Integer> charMap = new HashMap<Character, Integer>();
        for (char ch : chars){
            if (charMap.containsKey(ch)){
                charMap.put(ch,charMap.get(ch)+1);
            }
            else {
                charMap.put(ch,1);
            }
        }
        List<Integer> list = new ArrayList<Integer>();
        for(Map.Entry entry : charMap.entrySet()){
            list.add((Integer)entry.getValue());
            //System.out.println(entry.getKey()+" "+entry.getValue());
        }

        Collections.sort(list);

       // System.out.println(list.toArray()[0]);
        List<Character> lowFrequencyList = new ArrayList<Character>();
        for(Map.Entry entry :charMap.entrySet()){
            if (entry.getValue() == list.toArray()[0]){
               lowFrequencyList.add((Character) entry.getKey());
            }
        }

        for (int i = 0 ; i < chars.length ; i++){
            for(char zh : lowFrequencyList){
                if (chars[i] == zh){
                   chars[i] = ‘0‘;//mark
                }
            }
        }
        System.out.println(new String(chars));
        System.out.println(new String(chars).replaceAll("0",""));//remove mark



    }
}

 

以上是关于华为机试题的主要内容,如果未能解决你的问题,请参考以下文章

华为OD机试题 - 新学校选址(JavaScript)

华为OD机试题 - 求最大数字(JavaScript)

华为OD机试题 - 获得完美走位(JavaScript)

华为OD机试题 - 数字加减游戏(JavaScript)

片段(Java) | 机试题+算法思路+考点+代码解析 2023

华为机试题 HJ106字符逆序