首页 > ACM题库 > HDU-杭电 > hdu 2700 Parity-字符串处理-[解题报告]other
2014
02-14

hdu 2700 Parity-字符串处理-[解题报告]other

Parity

问题描述 :

A bit string has odd parity if the number of 1′s is odd. A bit string has even parity if the number of 1′s is even.Zero is considered to be an even number, so a bit string with no 1′s has even parity. Note that the number of
0′s does not affect the parity of a bit string.

输入:

The input consists of one or more strings, each on a line by itself, followed by a line containing only "#" that signals the end of the input. Each string contains 1�31 bits followed by either a lowercase letter ‘e’ or a lowercase letter ‘o’.

输出:

The input consists of one or more strings, each on a line by itself, followed by a line containing only "#" that signals the end of the input. Each string contains 1�31 bits followed by either a lowercase letter ‘e’ or a lowercase letter ‘o’.

样例输入:

101e
010010o
1e
000e
110100101o
#

样例输出:

1010
0100101
11
0000
1101001010

地址:http://acm.hdu.edu.cn/showproblem.php?pid=2700

题意:一个字符串如果有偶数个1,就是o,有奇数个1就是e。给出缺了最后一位的字符串和它的属性,求补足最后一位的字符串。

代码:

# include <stdio.h>
 # include <string.h>
 
 
 char str[110] ;
 
 int main ()
 {
     int i, cnt, len ;
     
     
     while (gets (str))
     {
         if (strcmp(str, "#") == 0) break ;
         len = strlen(str) ;
         for(i = 0, cnt = 0 ; i < len-1 ; i++)
             if (str[i] == '1') cnt++ ;
         if ((cnt%2 == 0 && str[len-1] == 'o') ||
             (cnt%2 == 1 && str[len-1] == 'e'))
             str[len-1] = '1' ;
         else str[len-1] = '0' ;
         puts (str) ;
     }
     return 0 ;
 }

解题转自:http://www.cnblogs.com/lzsz1212/archive/2012/05/23/2514147.html


  1. #!/usr/bin/env python
    def cou(n):
    arr =
    i = 1
    while(i<n):
    arr.append(arr[i-1]+selfcount(i))
    i+=1
    return arr[n-1]

    def selfcount(n):
    count = 0
    while(n):
    if n%10 == 1:
    count += 1
    n /= 10
    return count