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;}elselist.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;}