1031 - 奇偶位互换

通过次数

0

提交次数

0

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

给定一个长度为偶数位的0,1字符串,请编程实现串的奇偶位互换。

题目输入

输入包含多组测试数据。
输入的第一行是一个整数C,表示有C测试数据。
接下来是C组测试数据,每组数据输入均为0,1字符串,保证串长为偶数位(串长<=50)。

题目输出

请为每组测试数据输出奇偶位互换后的结果,每组输出占一行。

输入/输出样例

输入格式

2
0110
1100

输出格式

1001
1100

C语言解答

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

int main()
{
	int n,i;
	char a[51],c;
	scanf("%d%*c",&n);
	while(n--)
	{
		gets(a);
		for(i=0;i<strlen(a)-1;i=i+2)
		{
			c=a[i];
			a[i]=a[i+1];
			a[i+1]=c;
		}
		puts(a);
	}
	return 0;
}

C++解答

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

int main()
{
	int n,i;
	char a[51],c;
	scanf("%d%*c",&n);
	while(n--)
	{
		gets(a);
		for(i=0;i<strlen(a)-1;i=i+2)
		{
			c=a[i];
			a[i]=a[i+1];
			a[i+1]=c;
		}
		puts(a);
	}
	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){
			String s = in.next();
			StringBuffer sb = new StringBuffer();
			for(int i=0;i<s.length();i+=2)
				sb.append(s.charAt(i+1)).append(s.charAt(i));
			System.out.println(sb);
		}
	}

}

Python解答

import sys

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