1030 - 墓碑上的字符

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

考古学家发现了一座千年古墓,墓碑上有神秘的字符。经过仔细研究,发现原来这是开启古墓入口的方法。
墓碑上有2行字符串,其中第一个串的长度为偶数,现在要求把第2个串插入到第一个串的正中央,如此便能开启墓碑进入墓中。

题目输入

输入数据首先给出一个整数n,表示测试数据的组数。
然后是n组数据,每组数据2行,每行一个字符串,长度大于0,小于50,并且第一个串的长度必为偶数。

题目输出

请为每组数据输出一个能开启古墓的字符串,每组输出占一行。

输入/输出样例

输入格式

2
CSJI
BI
AB
CMCLU

输出格式

CSBIJI
ACMCLUB

C语言解答

#include<stdio.h>
#include<string.h>

int main()
{
	int n,i,j;
	char a[50],b[50],c[100];
	scanf("%d",&n);
	while(n--)
	{
		scanf("%s%s",a,b);
		for(i=0;i<strlen(a)/2;i++)
			c[i]=a[i];
		for(i=strlen(a)/2,j=0;j<strlen(b);i++,j++)
			c[i]=b[j];
		for(j=strlen(a)/2;a[j]!='\0';i++,j++)
			c[i]=a[j];
		c[i]='\0';
		printf("%s\n",c);
	}
	return 0;
}

C++解答

#include<stdio.h>
#include<string.h>

int main()
{
	int n,i,j;
	char a[50],b[50],c[100];
	scanf("%d",&n);
	while(n--)
	{
		scanf("%s%s",a,b);
		for(i=0;i<strlen(a)/2;i++)
			c[i]=a[i];
		for(i=strlen(a)/2,j=0;j<strlen(b);i++,j++)
			c[i]=b[j];
		for(j=strlen(a)/2;a[j]!='\0';i++,j++)
			c[i]=a[j];
		c[i]='\0';
		printf("%s\n",c);
	}
	return 0;
}

Java解答

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		int t = in.nextInt();
		while(t-->0){
			StringBuffer sb = new StringBuffer(in.next());
			sb.insert(sb.length()/2, in.next());
			System.out.println(sb);
		}
	}

}

Python解答

import sys
l,k,t,r= 1,0,[],[]
for line in sys.stdin:
    data = line.split()[0]
    if l !=1:
       k += 1
       if k%2 !=0:
          t = t+list(data)
       else:
          for j in range(len(t)/2):
              r.append(t[j])
          r.append(data)
          for j in range(len(t)/2):
              r.append(t[j+len(t)/2])
          print ''.join([i for i in r])
          k,t,r=0,[],[]
    l += 1