本题代码可以参考这里


原题: 1016. 部分A+B (15)

正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。

现给定A、DA、B、DB,请编写程序计算PA + PB

输入格式

输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010

输出格式

在一行中输出PA + PB的值。

输入样例1

3862767 6 13530293 3

输出样例1

399

输入样例2

3862767 1 13530293 8

输出样例2

0

注意

时间限制: 100 ms
内存限制: 65536 kB
代码长度限制: 8000 B
判题程序: Standard
作者: CHEN, Yue



题目分析

先把所有内容当做字符串处理。

  1. Python

    利用.count()方法统计出DA出现的次数cnt。

    cnt_Da = A.count(Da)
    

    再用*直接拼接n次,得到PA,并用int()将其转为整数。注意cnt为0的情况。

    if cnt_Da:
        Pa = int(Da * cnt_Da)
    else:
        Pa = 0
    

    对B作相同处理,然后两者相加即可。

  2. C++

    引入<algorithm>,即可得到std::count()

    string A;
    char a;		//注意a的类型
    //...
    
    cnt_a = count(A.begin(), A.end(), a);
    

    接着根据DA和cnt_a计算PA即可。注意cnt_a为0的情况。

部分测试用例

  • test1

    输入
    3862767 6 13530293 3
    
    输出
    399
    
  • test2

    输入
    3862767 1 13530293 8
    
    输出
    0
    

其他参考


(END)