UVALive 4167 Parity (字符串水)



题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2168


题意:给你一个字符串,由01组成,然后最后一个字符是e或o,e的时候输出的1的数量要是偶数,o的时候输出的1的数量要是奇数


思路:最后一个字符不再输出,所以说只需要计数1的数量,然后根据1数量的奇偶来判断最后一个应该输出什么



ac代码:

#include<stdio.h>
#include<math.h>
#include<string.h>
#include<stack>
#include<set>
#include<queue>
#include<vector>
#include<iostream>
#include<algorithm>
#define MAXN 1010000
#define LL long long
#define ll __int64
#define INF 0xfffffff
#define mem(x) memset(x,0,sizeof(x))
#define PI acos(-1)
using namespace std;
char s[MAXN];
int main()
{
	while(scanf("%s",s)!=EOF)
	{
		if(s[0]=='#')
		break;
		int len=strlen(s);
		int cnt=0;
		for(int i=0;i<len;i++)
		if(s[i]=='1')
		cnt++;
		for(int i=0;i<len-1;i++)
		printf("%c",s[i]);
		if(s[len-1]=='o')
		{
			if(cnt%2)
			printf("0\n");
			else
			printf("1\n");
		}
		else
		{
			if(cnt%2)
			printf("1\n");
			else
			printf("0\n");
		}
	}
	return 0;
}


你可能感兴趣的:(UVALive 4167 Parity (字符串水))