1.判断链表是否有环(用的是ArrayList 中 contains方法)
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
String[] str = s.split(",");
boolean flag = false;
ArrayList<String> list = new ArrayList<String>();
for(int i=0;i<str.length;i++){
if(list.contains(str[i])){
flag = true;
break;
}
else
list.add(str[i]);
}
System.out.println(flag);
}
2.反转链表
输入:
[1,2,3,4]
2
输出:
[2,1,4,3]
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
int k = scanner.nextInt();
s=s.replace("[","").replace("]","");
String[] str =s.split(",");
Demo6 test = new Demo6();
test.method(str,k);
System.out.print("[");
for(int i=0;i<str.length-1;i++)
System.out.print(str[i]+",");
System.out.print(str[str.length-1]+"]");
}
public void method(String[] str,int k){
int i=0;
while(i<str.length&&(i+k)<=str.length){
int j =i;
int r = i+k-1;
while(j<r){
swap(str,j,r);
j++;
r--;
}
i=i+k;
}
}
public void swap(String[] str,int i,int j){
String temp = str[i];
str[i] =str[j];
str[j] = temp;
}
3. (通过 71%)
输入:2 /order/print/printlist /order/print/printlist
输出: 111 121
输入:3 /order/print/printlistlist/printlist /order/print/printlistlist/printlist /order/print/printlistlist/printlist
输出:1111 1221 1331
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int num = scanner.nextInt();
String s = scanner.next();
String[] ss = new String [num];
Demo5 test = new Demo5();
HashMap<String,Integer> map = new HashMap<String, Integer>();
for(int i=0;i<num;i++){
ss[i] = scanner.next();
System.out.print(test.getResult(ss[i],map));
System.out.print(" ");
}
}
public String getResult(String s, HashMap<String,Integer> map){
String[] strs = s.split("/");
String result ="";
if(strs.length==1){
return "";
}
for(int i=1;i<strs.length;i++){
int num = map.getOrDefault(strs[i],0);
map.put(strs[i],num+1);
}
result+="1";
if(strs.length==2){
return result;
}
if(strs.length==3){
result +="1";
return result;
}
for(int i=2;i<strs.length-1;++i){
result +=map.get(strs[i]);
}
result+="1";
return result;
}