1031 - 奇偶位互换
时间限制 : 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