全部评论
分享一下~ 第一道 import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String []args) {
Scanner scanner=new Scanner(System.in);
String line =scanner.nextLine();
String arr[] = line.split(",");
Set<String> set=new HashSet<>();
for(String word:arr)
set.add(word);
System.out.println(arr.length>set.size());
}
}
第二道 import java.util.Scanner;
public class Main {
public static void main(String []args) {
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
int k = scanner.nextInt();
//数据转换
line = line.replaceAll("\\[", "").replaceAll("\\]", "");
String arr[] =line.split(",");
int len=arr.length;
int a[] = new int[len];
for(int j=0;j<len;j++) {
a[j] = Integer.parseInt(arr[j]);
}
//当前指针移动位置
int start_index = 0;
while(start_index <len) {
//如果越界
if(start_index+k>len) {
break;
}
//每轮前后交换的位置相加等于常数
int index_add = start_index*2+k-1;
for(int i=start_index;i<(start_index+k/2);i++) {
int tmp = a[i];
int exchange_index = index_add-i;
a[i] = a[exchange_index];
a[exchange_index] = tmp;
}
//下一轮的开始位置
start_index +=k;
}
//输出
System.out.print("[");
for(int j=0;j<len;j++) {
if(j!=len-1) {
System.out.print(a[j]+",");
}else {
System.out.print(a[j]);
}
}
System.out.print("]");
}
}
第三道 package xiecheng;
import java.util.Scanner;
public class Main {
public static void main(String []args) {
Scanner scanner = new Scanner(System.in);
String line = scanner.nextLine();
line=line.replaceAll(" ", " ");
String arr[] = line.split(" ");
int path_count = Integer.parseInt(arr[0]);
String paths[] = new String[path_count];
for(int i=1;i<path_count+1;i++) {
paths[i-1] = arr[i];
}
for(int j=0;j<path_count;j++)
System.out.print(getNumber(paths,j)+" ");
}
/**
* 获取某个路径的代表值
* @param paths 全部路径
* @param index 下标
* @return 值
*/
public static String getNumber(String []paths,int index) {
int level = getLevel(paths[index]);
if(level==1)
return "1";
if(level==2)
return "11";
int same_path_count = 1;
for(int i=0;i<index;i++) {
if(isEquals(paths[i], paths[index]))
same_path_count++;
}
StringBuffer sBuffer=new StringBuffer();
sBuffer.append("1");
for(int j=0;j<level-2;j++) {
sBuffer.append(same_path_count);
}
sBuffer.append("1");
return sBuffer.toString();
}
/**
* 判断两个路径是否相等,需要转成数组后再去比较
* @param path1
* @param path2
* @return
*/
public static boolean isEquals(String path1,String path2) {
String arr1[] =path1.split("/");
String arr2[] =path2.split("/");
int len1=arr1.length;
int len2=arr2.length;
if(len1!=len2)
return false;
for(int i=0;i<len1;i++) {
if(!arr1[i].equals(arr2[i]))
return false;
}
return true;
}
/**
* 获取路径的层数
* @param path
* @return
*/
public static int getLevel(String path) {
return path.split("/").length-1;
}
}
其实挺简单的,就是输入输出挺坑人的
不难啊…1 2题
第三题求什么路径深度
第二题链表反转
第一题链
研发B方向吗?
相关推荐
11-02 23:41
内蒙古工业大学 Java 点赞 评论 收藏
分享
12-15 11:27
门头沟学院 Java 点赞 评论 收藏
分享
点赞 评论 收藏
分享
顺丰集团工作强度 381人发布
