京东4.16笔试
选择不说了
编程第一道a了81%
第二题代码
#京东笔试##笔试题目#
编程第一道a了81%
第二道0,我在结束后几分钟写出来,发现有个条件写错了。。。。。样例过了,但是别的没测不知道。。。。。
第一题代码
import java.util.Objects;
import java.util.Scanner;
public class Main1 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int t=in.nextInt();
String s1=in.nextLine();
int[] n=new int[t];
for(int i=0;i<t;i++){
n[i]=in.nextInt();
String s2=in.nextLine();
String[] str=new String[n[i]];
for(int j=0;j<n[i];j++){
str[j]=in.nextLine();
}
if(!isMatch(str)){
System.out.println("Yes");
}else {
System.out.println("No");
}
}
}
public static boolean isMatch(String[] str){
String[] stack=new String[str.length];
int top=-1;
for(int i=0;i<str.length;i++){
String curr=str[i];
if(!str[i].contains(" ")&&str[i].equals(str[i])){
stack[++top]=str[i];
}else {
if(top==-1){
return false;
}
String temp=stack[top--];
if(str[i].equals("end "+curr)&& !Objects.equals(temp, str[i])){
return false;
}
}
}
return top == -1;
}
}
第二题代码
import java.util.Arrays;
import java.util.Scanner;
public class Main2 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int t=in.nextInt();
for(int i=0;i<t;i++){
String s1=in.nextLine();
int n=in.nextInt();
String s2=in.nextLine();
int[] a=new int[n];
for(int j=0;j<n;j++){
a[j]=in.nextInt();
}
Arrays.sort(a);
if(n%2==0){
int[] num=new int[n/2+1];
int k=0;
for(int j=1;j<n/2-1;j+=2){
num[k]=a[j];
k++;
}
for(int j=n/2;j<n;j++){
num[k]=a[j];
k++;
}
k--;
if((k+1)%2!=0){
System.out.print(num[(k+1)/2]+" ");
}else {
System.out.print(num[(k)/2]+" ");
}
}else {
int[] num=new int[(n+1)/2];
int k=0;
for(int j=1;j<(n+1)/2-1;j+=2){
num[k]=a[j];
k++;
}
for(int j=(n+1)/2;j<n;j++){
num[k]=a[j];
k++;
}
k--;
if((k+1)%2!=0){
System.out.print(num[(k+1)/2]+" ");
}else {
System.out.print(num[(k)/2]+" ");
}
}
}
}
}
