牛客网练习4

时间:2023-02-13 19:46:01

1题目描述

•连续输入字符串,请按长度为8拆分每个字符串后输出到新的字符串数组; 
•长度不是8整数倍的字符串请在后面补数字0,空字符串不处理。 

输入描述:

 
 

连续输入字符串(输入2次,每个字符串长度小于100)

输出描述:

 
 

输出到长度为8的新字符串数组

示例1

输入

abc
123456789

输出

abc00000
12345678
90000000

代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
= 1
= []
while k < = 2 :
     = input ()
     l.append(s)
     + = 1
for in range ( 2 ):
     if len (l[i]) < = 8 :
         print (l[i]  + '0' * ( 8 - len (l[i])))
     elif len (l[i]) >  8 :
         = int ( len (l[i])  / 8 )
         = len (l[i])  % 8
         = 0
         = 8
         for in range (m):
             print (l[i][h:t])
             + = 8
             + = 8
         if n ! = 0 :
             print (l[i][h: len (l[i]) + 1 + '0' * ( 8 - n))


看了一下网上的其他解答,感觉预先对输入的字符串处理一下效果会更好,比如预先8个8个把字符串拆开。


2题目描述

正整数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的值。

输入例子:

3862767 6 13530293 3

输出例子:

399


代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
s = input()
l = s.split()
pA =  ''
pB =  ''
for i in l[ 0 ]:
     if i == l[ 1 ]:
          pA += i
if pA ==  '' :
     pA =  '0'
for j in l[ 2 ]:
     if j == l[ 3 ]:
         pB += j
if pB ==  '' :
     pB =  '0'
 
print( int (pA) +  int (pB))

网上还有两行解法:

链接:https://www.nowcoder.com/questionTerminal/fb581ea099a14f5d97c6149cbeee249f
来源:牛客网

1
2
3
a, b, c, d = input().split()
 
print( int (a.count(b) * b or "0" ) + int (c.count(d) * d or "0" ))
直接用count()方法