1030 - 墓碑上的字符
时间限制 : 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