欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java acm A1003--顺序合并两个非有序的链表

程序员文章站 2022-03-04 20:17:58
...

A1003–顺序合并两个非有序的链表

给定由整数组成的两个无序数组,根据顺序合并成一个数组。

输入包括两行,每行由若干个由->分隔的整数组成,分别表示以最左整数为链表头,单向指向右侧节点的链表,每行输入均以 .结尾。

输出为合并后的单向链表,由->表示其间的指针,最终指向由NULL表示的空值。

在合并过程中,比较两个链表当前待合并的第一个元素,选择其中较小的那个元素放入合并后的数组。

输入格式
输入两行字符串,每行字符串由 有符号整数、->和.组成。

输出格式
输出一行字符串,表示合并后的数组。

样例输入复制
1->2->3.
1->0->2.
样例输出复制
1->1->0->2->2->3->NULL

package hello;
import java.util.Scanner;
public class Main40 {
	
	public static void main(String[] args) {
	Scanner	scanner = new Scanner(System.in);	
		String string=scanner.next();
		String string2=scanner.next();
		char []a=string.toCharArray();
		char []b=string2.toCharArray();
		int t=a.length;
		int t2=b.length ;
		int sum=0;
		if(t>t2) {
			sum=t2;
		}else {
			sum=t;
		}
		for(int i=0;i<sum;i=i+3) {
			    int j=i;
				if(a[i]>=b[j]) {
					System.out.print(b[j]);
					System.out.print("->");
					System.out.print(a[i]);
					System.out.print("->");
				}
				else {
					System.out.print(a[i]);
					System.out.print("->");
					System.out.print(b[j]);
					System.out.print("->");
				}
				
				
			}
		if(sum==t&&sum==t2) {
			System.out.print("NULL");
		}
		else if(sum==t){
			for(int k=t+1;k<b.length;k=k+3) {
				System.out.print(b[k]);
				System.out.print("->");
			}
			System.out.print("NULL");
		 }
		else if(sum==t2){
				for(int y=t2+1;y<a.length;y=y+3) {
					System.out.print(a[y]);
					System.out.print("->");
				}
				System.out.print("NULL");
			}
		
			
		
	}
}

这个代码是可以输出正确的答案的

大佬帮忙指点一下,自己测试是可以输出正确答案的,但是提交到题库就不行了,不知道为什么

你们可以试一试,复制一下,我是找不到错误