1036 - 字符串的奇偶性

通过次数

0

提交次数

0

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

我们把只有0和1组成的字符串叫做比特字符串。如果比特字符串中1的个数为奇数,则称这个比特字符串是奇性的。如果比特字符串中1的个数为偶数,则称这个比特字符串是偶性的。
注意:
(1)0是偶数,所以不包含1的比特字符串是偶性的。
(2)0的个数不影响比特字符串的奇偶性。

题目输入

输入包含多组测试数据。每组数据由1~31个0、1组成,最后跟一个小写字母e或o,e表示此比特字符串应为偶性,o表示此比特字符串应为奇性。
当输入#时,表示输入结束。

题目输出

每组输入对应一个输出,你应该将最后的字母替换成0或1,使得此比特字符串符合输入时确定的奇偶性。

输入/输出样例

输入格式

101e
010010o
1e
000e
110100101o
#

输出格式

1010
0100101
11
0000
1101001010

C语言解答

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

int main()
{
	int i,k,l;
	char a[35];
	while(gets(a))
	{
		k=0;
		if(!strcmp(a,"#"))
			break;
		l=strlen(a);
		for(i=0;i<l;i++)
			if(a[i]=='1')
				k++;
		if(k%2==0)
		{
			if(a[l-1]=='e')
				a[l-1]='0';
			else
				a[l-1]='1';
		}
		else
		{
			if(a[l-1]=='e')
				a[l-1]='1';
			else
				a[l-1]='0';
		}
		printf("%s\n",a);
	}
	return 0;
}

C++解答

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

int main()
{
	int i,k,l;
	char a[35];
	while(gets(a))
	{
		k=0;
		if(!strcmp(a,"#"))
			break;
		l=strlen(a);
		for(i=0;i<l;i++)
			if(a[i]=='1')
				k++;
		if(k%2==0)
		{
			if(a[l-1]=='e')
				a[l-1]='0';
			else
				a[l-1]='1';
		}
		else
		{
			if(a[l-1]=='e')
				a[l-1]='1';
			else
				a[l-1]='0';
		}
		printf("%s\n",a);
	}
	return 0;
}

Java解答

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		while(true){
			String s = in.nextLine();
			if(s.equals("#"))break;
			char[] mai = s.substring(0, s.length()-1).toCharArray();
			char com = s.charAt(s.length()-1);
			int cou = 0;
			for(char c:mai)
				if(c=='1')cou++;
			if(cou%2==0&&com=='e' || cou%2==1&&com=='o')System.out.println(s.replace(com, '0'));
			else System.out.println(s.replace(com, '1'));
		}
	}

}

Python解答

import sys
  
for line in sys.stdin:
    data = list(line.split()[0])   
    if data[0]!='#':
        c1 = data.count('1')
        if c1%2==0:
           if data[-1]=='e':
              data[-1]='0'
              print ''.join([i for i in data])
           elif data[-1]=='o':
              data[-1]='1'
              print ''.join([i for i in data])
        else:
           if data[-1]=='e':
              data[-1]='1'
              print ''.join([i for i in data])
           elif data[-1]=='o':
              data[-1]='0'
              print ''.join([i for i in data])