华为面试题集(updating……)

1.计算字符串最后一个单词的长度,单词以空格隔开。

输入描述:一行字符串,非空,长度小于5000。
输出描述:整数N,最后一个单词的长度。
示例1
输入:hello world
输出:5

import java.util.Scanner;
public class WordLength {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		String str = null;
		str = in.nextLine();
		test(str);
		/*
		 *  nextLine()是以回车作为分割符进行读取 也就是说会从控制台接收控制台输入的一行数据,读入语句包含空格
            next() 是以空格和回车作为分割符进行读取的,如果一行输入包含空格,会按空格截断,只显示第一个空格之前的内容
		 */
	}	
	public static void test(String str){		
		String [] data=str.split(" ");		
		int len = data.length;		
		int l = data[len-1].length();		
		System.out.println(l);
	}
}

2.写出一个程序,接受一个由字母和数字组成的字符串,和一个字符,然后输出输入字符串中含有该字符的个数。不区分大小写。

输入描述:第一行输入一个有字母和数字以及空格组成的字符串,第二行输入一个字符。
输出描述:输出输入字符串中含有该字符的个数。
示例1
输入:ABCDEF
A
输出:1

import java.util.Scanner;
public class CharNumber {	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		String str = in.next();
		String str2 = in.next();
		count(str,str2);
	}	
	public static void count(String str,String str2) {
		int counts=0;
		//不能区分大小写
//		char[] originaldata = str.toCharArray();
//		char target = str2.charAt(0);
//		for(int i=0;i

3.明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据,希望大家能正确处理)。

Input Param
n 输入随机数的个数
inputArray n个随机整数组成的数组
Return Value
OutputArray 输出处理后的随机整数
注:测试用例保证输入参数的正确性,答题者无需验证。测试用例不止一组。
输入描述:输入多行,先输入随机整数的个数,再输入相应个数的整数
输出描述:返回多行,处理后的结果
示例1:
输入
11
10
20
40
32
67
40
20
89
300
400
15
输出:
10
15
20
32
40
67
89
300
400

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Iterator;
import java.util.Scanner;
import java.util.Set;
import java.util.TreeSet;

public class Main {
	public static void main(String[] args) throws NumberFormatException, IOException {
	  Scanner in = new Scanner(System.in);        
		while(in.hasNext()) {
			TreeSet set = new TreeSet();
			int n = in.nextInt();
			for(int i=0;i

4. •连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组;

•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。

输入描述:连续输入字符串(输入2次,每个字符串长度小于100)

输出描述:输出到长度为8的新字符串数组
示例1
输入:
abc
123456789
输出:
abc00000
12345678
90000000

import java.util.*;

public class StringSplit {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		while(in.hasNext()) {
			String str = in.nextLine();
			String str1 = in.nextLine();
			Split(str);
			Split(str1);
		}
	}
	
	public static void Split(String str){
		int len = str.length();
		if(len>=8) {
			int count=0;			
			int m = len/8;//分成m段
			int l = len%8;//余下几个数
			String data[]= new String[m];
			for(int i=0;i0) {
				StringBuilder data2 = new StringBuilder(str.substring(count,len));
				for(int j=0;j<8-l;j++) {
					data2.append("0");
				}				
				System.out.println(data2);
			}	
		}else if(len<8){
			StringBuilder data3 = new StringBuilder(str.substring(0,len));
			for(int j=0;j<8-len;j++) {
				data3.append("0");
			}				
			System.out.println(data3);
		}
    }

}

5.写出一个程序,接受一个正浮点数值,输出该数值的近似整数值。如果小数点后数值大于等于5,向上取整;小于5,则向下取整。

输入描述:输入一个正浮点数值
输出描述:输出该数值的近似整数值
输入
5.5
输出
6

import java.util.*;    
public class Rounding {    
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		while(in.hasNext()) {
			String str = in.nextLine();
			String[] rec = str.split("\\.");
//			long data = Long.parseLong(rec[1]);
			int decimal = Integer.parseInt(rec[1]);
			int integer = Integer.parseInt(rec[0]);
			if(decimal>=5) {
				integer+=1;
				System.out.print(integer);
			}else {
				System.out.print(integer);
			}    			
		}
	}    
}

6.数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。

输入描述:先输入键值对的个数
然后输入成对的index和value值,以空格隔开
输出描述:输出合并后的键值对(多行)
示例1
输入
4
0 1
0 2
1 2
3 4
输出
0 3
1 2
3 4

  import java.util.*;
import java.util.Map.Entry;
/*
 * 数据表记录包含表索引和数值,请对表索引相同的记录进行合并,即将相同索引的数值进行求和运算,输出按照key值升序进行输出。
 */
public class Merge {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
//		Scanner  in = new Scanner(System.in);        
//        int n=Integer.parseInt(in.nextLine());
//        int temp=n;
//        String str,s[];
//        int []arr=new int[n];
//        while(temp>0){
//            s=in.nextLine().split(" ");
//            arr[Integer.parseInt(s[0])]+=Integer.parseInt(s[1]);
//            temp--;
//        }
//        for(int i=0;i

7.输入一个int型整数,按照从右向左的阅读顺序,返回一个不含重复数字的新的整数。

输入描述:输入一个int型整数
输出描述:按照从右向左的阅读顺序,返回一个不含重复数字的新的整数
示例1
输入
9876673
输出
37689

import java.util.*;
public class PickRepeat {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		while(in.hasNext()) {
			String num = in.nextLine();
			char[] str = num.toCharArray();
			int len = str.length;
			ArrayList list = new ArrayList<>();
			for(int i=len-1;i>=0;i--) {
				if(!list.contains(str[i])) {
					list.add(str[i]);
				}
			}
			for(Character s:list) {
				System.out.print(s);
			}
		}
	}

}

8.编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。

输入描述:输入N个字符,字符在ACSII码范围内。
输出描述:输出范围在(0~127)字符的个数。
示例1
输入
uqic^g`(s&jnl(m#vt!onwdj(ru+os&wx
输出
24

public class StatisticChar {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner in = new Scanner(System.in);
		while(in.hasNext()) {
			String str = in.nextLine();
			int count=0;
			for(int i=0; i list = new ArrayList();
//			int len = str.length();
//			for(int i=0;i=0&&ascii<127&&(!list.contains(ascii))) {
//					list.add(ascii);
//				}
//			}
			for(int s:list)
//			System.out.println(list.size());
		}
	}

}

9.颠倒数字 输入一个整数,将这个整数以字符串的形式逆序输出程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001

输入描述:输入一个int整数
输出描述:将这个整数以字符串的形式逆序输出
示例1
输入
1516000
输出
0006151

import java.util.*;
public class Upside {
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		while(in.hasNext()) {
			String str = in.nextLine();
			int len = str.length();
			char[] data = str.toCharArray();
			for(int i=len-1;i>=0;i--) {
				System.out.print(data[i]);
			}
		}
	}
}

你可能感兴趣的:(笔试题集)