华为校招java题目_20200812 华为校招笔试 java

第一题

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

String line = in.nextLine();

in.close();

String[] strings = line.split(",");

int tmp;

int m5 =0;

int m10=0;

for (int i = 0; i < strings.length; i++) {

tmp = Integer.parseInt(strings[i]);

if(tmp==5) {

m5++;

continue;

}

if(tmp==10) {

m10++;

m5--;

if(m5<0){

System.out.println("false,"+(i+1));

return;

}else {

continue;

}

}

if(tmp==20){

if(m10>0){

m10--;

m5--;

}else{

m5=m5-3;

}

if(m5<0){

System.out.println("false,"+(i+1));

return;

}else {

continue;

}

}

System.out.println("false,"+(i+1));

return;

}

System.out.println("true,"+strings.length);

}

}

第二题

import java.util.Scanner;

public class Main5 {

static int S,M,N;

static int[][] direction = {{0,1},{0,-1},{1,0},{-1,0}};

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

S = in.nextInt();

M = in.nextInt();

N = in.nextInt();

int[][] graph = new int[M][N];

for (int i = 0; i < M; i++) {

for (int j = 0; j < N; j++) {

graph[i][j] = in.nextInt();

}

}

in.close();

if(graph[M-1][N-1]==0){

System.out.println(0);

return;

}

dfs(graph,0,0);

if(graph[M-1][N-1]==0){

System.out.println(1);

}

}

static void dfs(int[][] graph, int i,int j){

if(i<0||i>=M||j<0||j>=N) {

return;

}

if(graph[i][j] == 0){

return;

}

graph[i][j] = 0;

for (int k=0;k<4;k++){

i += direction[k][0]*S;

j += direction[k][1]*S;

dfs(graph,i,j);

}

}

}

第三题

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner in = new Scanner(System.in);

String line = in.nextLine();

in.close();

String[] strings=line.split(",");

String str=strings[0];

int odd=Integer.valueOf(strings[1]);

StringBuilder[] builders = new StringBuilder[odd];

for (int j = 0; j < odd; j++) {

builders[j] = new StringBuilder();

}

int rowNumber = 0;

int index = 0;

int length = str.length();

while(index

for (int i = 0; i < odd; i++) {

if(rowNumber==i||(rowNumber+i+1)==odd) {

builders[i].append(str.charAt(index++));

if(index==length) break;

}

}

rowNumber=(rowNumber+1)%(odd-1);

}

for (int i = 0; i < odd ; i++) {

System.out.print(builders[i]);

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值