当前位置:网站首页>华为机试题
华为机试题
2022-07-02 06:25:00 【霏霏小雨】
1
现在有多组整数数组,需要将他们合并成一个新的数组。合并规则,从每个数组里按顺序取出固定长度的内容合并到新的数组中,取完的内容会删除掉,如果该行不足固定长度或者已经为空,则直接取出剩余部分的内容放到新的数组中,继续下一行。
输入描述:
第一行是每次读取的固定长度,长度>0
第2-n行是需要合并的数组,不同的数组用回车换行分割,数组内部用逗号分隔
输出描述:
输出一个新的数组,用逗号分隔
示例:
输入:
3
2,5,6,7,9,5,7
1,7,4,3,4
输出:
2,5,6,1,7,4,7,9,5,3,4,7
示例:
输入:
4
2,5,6,7,9,5,7
1,7,4,3,4
输出:
2,5,6,7,1,7,4,3,9,5,7,4
代码实现:
package com.ycr;
import java.util.ArrayList;
import java.util.Scanner;
public class Q1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int fixedLength = Integer.valueOf(scanner.nextLine().trim());
ArrayList<ArrayList<String>> list = new ArrayList<>();
String [] tempInt;
ArrayList<String> tempString;
while(scanner.hasNext()) {
//for(int k = 0; k < 2; k ++) {
tempInt = scanner.nextLine().split(",");
tempString = new ArrayList<>();
for(int i = 0; i < tempInt.length; i ++) {
tempString.add(tempInt[i]);
}
list.add(tempString);
}
scanner.close();
StringBuilder out = new StringBuilder();
final String comma = ",";
while(!AllEmpty(list)) {
for(int i = 0; i< list.size(); i ++) {
if(list.get(i).isEmpty()) {
continue;
}
int j = 0;
while(j < fixedLength) {
if(list.get(i).isEmpty()) {
break;
}
out.append(list.get(i).get(0));
out.append(comma);
j ++;
list.get(i).remove(0);
}
}
}
System.out.print(out.substring(0, out.length() - 1));
}
static boolean AllEmpty(ArrayList<ArrayList<String>> list) {
for(int i = 0; i< list.size(); i ++) {
if(!list.get(i).isEmpty()) {
return false;
}
}
return true;
}
}
2
对输入的字符串检查是否存在非法字符,输出合法字符串(去重)和非法字符串(不去重)
对合法字符串循环左移10次,再进行排序输出。(举例:比如字符串“abc”,循环左移一次的结果为“bca”)
输入描述:
(1) 字符串中的字符集合为’0’ - ‘9’,‘a’ - ‘z’,‘A’ - ‘Z’,其余为非法字符(空字符串作为定界符),有非法字符的字符串被视为非法输入
(2) 作为输入的字符串个数不超过100,每个字符串长度不超过64
(3) 作为输入的连续空字符串(空格/制表符/回车/换行符)作为一个空格处理(作为定界符,字符串起始字符不为空)
(4) 输入每行只有一个字符串
(5) 输入以空行结束
输出描述:
(1) 输出合法字符串并去重
(2) 输出所有非法字符串
(3) 对结果(1)的去重合法字符串循环左移10次
(4) 对结果(3)合法字符串排序,按ASCII表字符从小到大顺序排序
注意事项:
每输出一个字符串后用空格跟下一个字符串隔离,作为输出的所有字符串之间只能由一个空格(作为定界符)
示例:
输入:
abc
adf
==
acd123
44234tjg
aga'-=
ad--s
abd
123
abcdef
123456789012345678901234567890123456789012345678901234567890123
EDFG
SDFG
ABC
DEF
cccc
a*b=1
abc
cccc
dd
def
87&&^
等等…………
输出:
4个输出,不打了。。。
完成一半的代码:
未完成:去重(可以通过使用HashSet自动去重功能)、排序(可以通过实现Comparable接口完成)
package com.ycr;
import java.util.ArrayList;
import java.util.Scanner;
public class Q2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String temp;
final String end = "";
final String space = " ";
StringBuilder valid = new StringBuilder();
StringBuilder inValid = new StringBuilder();
StringBuilder afterLeft = new StringBuilder();
ArrayList<StringBuilder> validList = new ArrayList<>();
while(true) {
temp = scanner.nextLine();
if(temp.trim().equals(end)) {
break;
}
if(isValid(temp)) {
valid.append(temp);
validList.add(new StringBuilder(temp));
valid.append(space);
} else {
inValid.append(temp);
inValid.append(space);
}
}
scanner.close();
for(int i = 0; i < validList.size(); i ++) {
afterLeft.append(left(validList.get(i)));
afterLeft.append(space);
}
System.out.println(valid.substring(0, valid.length() - 1));
System.out.println(inValid.substring(0, inValid.length() - 1));
System.out.println(afterLeft.substring(0, afterLeft.length() - 1));
}
static StringBuilder left(StringBuilder s) {
int LEN = 10 % s.length();
return new StringBuilder(s.substring(LEN)).append(s.substring(0, LEN));
}
static boolean isValid(String s) {
for(int i = 0; i < s.length(); i ++) {
if(!isValid(s.charAt(i))) {
return false;
}
}
return true;
}
static boolean isValid(char c) {
return c >= '0' && c <= '9' || c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z';
}
}
3
由于不是本人参与,未摘录。。。
边栏推荐
- Sqli labs customs clearance summary-page1
- sqli-labs通关汇总-page1
- ORACLE 11G利用 ORDS+pljson来实现json_table 效果
- In depth study of JVM bottom layer (II): hotspot virtual machine object
- ORACLE EBS DATAGUARD 搭建
- Basic knowledge of software testing
- Oracle segment advisor, how to deal with row link row migration, reduce high water level
- Explanation of suffix of Oracle EBS standard table
- Principle analysis of spark
- 2021-07-17c /cad secondary development creation circle (5)
猜你喜欢
随机推荐
Oracle rman自动恢复脚本(生产数据向测试迁移)
php中计算树状结构数据中的合计
Wechat applet Foundation
php中根据数字月份返回月份的英文缩写
oracle EBS标准表的后缀解释说明
JS judge whether the object is empty
php中树形结构转数组(拉平树结构,保留上下级排序)
Tool grass welfare post
Oracle apex 21.2 installation and one click deployment
Use of interrupt()
Explanation of suffix of Oracle EBS standard table
Anti shake and throttling of JS
RMAN incremental recovery example (1) - without unbacked archive logs
ORACLE APEX 21.2安裝及一鍵部署
Laravel8中的find_in_set、upsert的使用方法
DNS攻击详解
CRP实施方法论
Oracle EBS ADI development steps
php中删除指定文件夹下的内容
Go common compilation fails









