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");
}
}
}