牛客python蓝桥杯11-32(自用)


11

python 复制代码
import os
import sys

def huiwen(str):
    length = len(str)
    # if length == 0:
    #     return -1
    result = []
    for i in range(length-1): # 0 - length-2
        for j in range(i+2,length+1):
            # 取出从索引 i 到 j-1 的子串
            s = str[i:j]
            # 正序倒序
            if s == s[::-1]:
                result.append(len(s))
    if result:
        return min(result)
    else:
        return -1


str = input().strip()

print(huiwen(str))

12

python 复制代码
# 单斜线(/)用于执行传统的除法运算,无论操作数是整数还是浮点数,结果都会以浮点数的形式返回。例如:
# 例如:
# print(10 / 3) # 输出:3.3333333333333335
# 而双斜线(//)则用于执行整除运算,它会返回除法结果的整数部分,也就是说,它会向下取整
# 例如:
#
# print(10 // 3) # 输出:3

# num = input()
# print(type(num))
# num = int(num)
# print(type(num))
# 2
# <class 'str'>
# <class 'int'>

n = int(input())

sum = 0
for i in range(n):
    a = int(input())

    for j in range(1,a+1):
        list = []
        if a%j==0:
            list.append(j)
    for m in range(len(list)):
        if list[m] % list[(m+1)//2] == 0:
            print(list[m])

13

python 复制代码
a, b = input().split()  # 输入两个字符串

result = []
for i in range(3):
    new = int(a[i]) + int(b[i])  # 计算同位置数字相加
    new1 = new % 3  # 取余数
    result.append(str(new1))  # 转换为字符串再存入列表

print(''.join(result))  # 连接字符串并输出


a,b=input().split()
result='' # 初始化一个空字符串 result,用于存储最终的计算结果。
for i in range(3):
    new=int(a[i])+int(b[i])
    new1=new%3
    result+=str(new1) # result += str(new1)  # result = '2' + '1' = '21'
print(result)

14

python 复制代码
# Sn = n / 2 * ( 2 * a1 + ( n - 1 ) * d )
# Sn = a1 * ( ( 1 - q ** n ) /  ( 1 - q ) )

n=int(input())
result=n*n%998244353
print(result)

n = 5
a1 =1
d = 1
q = 2
Sn = n / 2 * ( 2 * a1 + ( n - 1 ) * d )
Zn = a1 * ( ( 1 - q ** n ) /  ( 1 - q ) )

print(Sn)
print(Zn)
# 15.0
# 31.0

15

python 复制代码
n = int(input())
for i in range(n):
    list =[]
    for _ in range(4):
        list.append((input()))
        # 1
        # * * * *
        # * * * *
        # * * * *
        # * * * *
        # No

        # list.append((input().split()))
        # 1
        # * * * *
        # * * * *
        # * * * *
        # * * * *
        # Yes
    flag = False
    for i in range(3):
        for j in range(3):
            if list[i][j] == list[i][j + 1] == list[i + 1][j] == list[i + 1][j + 1]:
                flag = True
                break
        if flag == True:
            break
    if flag == False:
        print('No')
    else:
        print('Yes')

16

python 复制代码
a,b,c,d=map(int,input().split())
maxarea=min(a,c)*min(b,d)
print(maxarea)

17

python 复制代码
n , v = map(int, input().split())

lists = list(map(int, input().split()))


count = 0
u = 0
for i in lists:
    if i + u > v or u == 0:
        count += 1
        u = i
    else:
        u = u + i
print(count)

18

python 复制代码
t = int(input())
for _ in range(t):
    n = int(input())
    lst = list(map(int, input().split()))
    a, k, b = map(int, input().split())
    m = int(input())
    for j in range(m - 1):
        for i in range(n):
            lst[i] += a
            if lst[i] > k:
                lst[i] = b

#print(*lst) 是用来将列表中的元素逐个打印到同一行,并且元素之间用空格分隔。例如,如果 lst = [1, 2, 3],它会打印:

# 1 2 3
    print(*lst)

19

python 复制代码
def f():
    q = int(input())
    l = list(map(int, input().split()))
    if l[0] % 2 != 0:
        return 0
    else:
        for j in range(1, len(l)):
            if l[j] < l[0] and l[j] % 2 != 0:
                return 1
    return -1


h = int(input())
for i in range(h):
    print(f())

20

python 复制代码
def solve():
    n = int(input())
    cnt, sum = 0, 1
    while sum < n:
        sum *= 2
        cnt += 1
    print(cnt)


if __name__ == '__main__':
    t = int(input())
    while t:
        t -= 1
        solve()

21

python 复制代码
t=int(input())
for i in range(t):
    n,m=map(int,input().split())
    # b > a
    # b > m = a
    # b = n - m > m = a
    # n > 2 * m
    if n>m*2:
        b=n-m
        a=n-b
        # print(str(a)+" "+str(b))
        print(f'{a} {b}')
    else:
        print(-1)

22

python 复制代码
n=int(input())
for i in range(3*n):
    print(n*'*'+2*n*'.'+n*'*')
for i in range(1,1+n):
    print(i*'.'+n*'*'+(2*n-2*i)*'.'+n*'*'+i*'.')


# print(3*'2 ')

23

python 复制代码
def count(s, t):
    n = len(s)
    m = len(t)

    extended_s = s + s

    count = 0
    for i in range(n):
        if extended_s[i:i + m] == t:
            count += 1
    return count


s = input().strip()
t = input().strip()

print(count(s, t))


# s1 = "Hello"
# s2 = "World"
# s3 = "!"
# result1 = "".join([s1, s2, s3])  # 用空字符串拼接
# result2 = s3 + s2 + s1
# print(result1)
# print(result2)

24

python 复制代码
x=int(input())
x*=10
for i in range(10):
    if (x+i)%7==0:
        print(x+i)
        break

25

python 复制代码
# 在 Python 里,可以使用 sort(reverse=True) 或 sorted() 来实现降序排序。
# lst = [3, 1, 4, 1, 5, 9]
# lst.sort(reverse=True)  # 降序排序
# print(lst)
#
# print(" ".join(str(num) for num in lst))
n=int(input())
ll=list(map(int,input().split()))
if ll.count(0) == 0:
    print(-1)
else:
    ll.sort()
    ll=ll[::-1]
    for i in ll:
        print(i,end='')

26

python 复制代码
s=input()
count=0
x=0
y=0
for i in s:
    if i=='a':
        x+=1
    else:
        y+=1
    # 这个 f-string(格式化字符串) 用于格式化两个整数 x 和 y,并确保它们始终以 两位数 的形式显示。
    # 如果 x 或 y 是 个位数,它们会被填充 0 变成 两位数。
    score=f'{x:02d}{y:02d}'
    # print(score)
    count+=score.count('0')
print(count)

27

python 复制代码
q = int(input())

for _ in range(q):
    m,x = map(int,input().split())
    res = (x-1)%m+1
    print(res)

28

python 复制代码
a, k, q = map(int, input().split()) # 首项 公差 循环次数

for _ in range(q):
    l, r = map(int, input().split()) # 从l-r
    length = r - l + 1

    first = a + (l - 1) * k

    if k % 2 == 0:
        if first % 2 == 0:
            print(-1)
        else:
            print(1)
    else:
        if length % 2 == 0:
            print(0)
        else:
            if first % 2 == 0:
                print(-1)
            else:
                print(1)

29

python 复制代码
n = int(input())
k = 0
while n % 2:
    k += 1
    # n //= 10 是 整数除法赋值运算,它的作用是 去掉 n 的最后一位数字。
    n //= 10  # 右移
    # print(n)
print(k)

30

python 复制代码
from math import gcd
for _ in range(int(input())):
    n,k=map(int,input().split())
    if k%2==1:
        print(n)
        for i in range(1,n+1):
            print(i,end=" ")
    else:
        if (k//gcd(n,k))%2==0:
            print(-1)
        else:
            print(n//gcd(n,k))
            for i in range(1,n+1,gcd(n,k)):
                print(i,end=" ")
    print()

# # 截断
# print(8 // 3)  # 输出: 2
# print(7 // 3)  # 输出: 2
# print(-7 // 3)  # 输出: -3

31

python 复制代码
import sys
import math
# for line in sys.stdin:
# 这行代码会遍历标准输入(通常是键盘输入或输入重定向的文件流)中的每一行。每次循环 line 会包含输入的一行内容,line 是一个字符串,可能包含空格或其他分隔符。
#
# line.split()
# split() 是字符串的方法,它会将字符串按空格(或其他分隔符)分割成多个子字符串,并返回一个列表。例如,如果输入的 line 是 "3 4", 那么 line.split() 将会返回 ['3', '4']。
#
# map(int, line.split())
# map(int, line.split()) 将 line.split() 返回的每个子字符串(这些都是数字的字符串)转换为整数。这里 map() 会依次将 line.split() 中的每个元素传递给 int() 函数,最终返回一个迭代器,包含转换后的整数。
#
# list(map(int, line.split()))
# 将 map() 返回的迭代器转换为一个列表。这样你就得到了一个整数列表,例如:如果输入的 line 是 "3 4",那么 l 将是 [3, 4]。
for line in sys.stdin:
    l = list(map(int, line.split()))
    # math.pow(l[0], 2) 就是将 l[0] 这个数进行平方运算,即 l[0] ** 2。
    # r = math.sqrt(math.pow(l[0], 2) + math.pow(l[1], 2))

    r = math.sqrt((l[0] ** 2) + (l[1] ** 2))
    res = 11 - r
    if res == 11:
        print(10)
    elif res > 0:
        print(math.floor(res))
    else:
        print(0)

# import sys
# import math
#
# l = list(map(int, input().split()))
# r = math.sqrt(l[0] ** 2 + l[1] ** 2)
# res = 11 - r
# if res == 11:
#     print(10)
# elif res > 0:
#     print(math.floor(res))
# else:
#     print(0)

32

python 复制代码
# 总结:
# //(整数除法):返回整数部分,即使输入是浮点数,结果也是整数(向下取整)。
# /(普通除法):返回浮点数,结果即使是整数,值也会是浮动的浮点数。
n,k = map(int,input().split())

if k==1:
    s = n*n/2
    print("%.2f"%s)
elif k%2 == 0:
    qie = k/2
    long = n/(qie+1)
    area = long*long
    print("%.2f"%area)
else:
    shu = k//2

    ans = (n*n)/((shu+1)*(shu+2))
    print("%.2f"%ans)
相关推荐
十年之少14 分钟前
内存检测工具——Qt Creator
开发语言·qt
网络安全(king)40 分钟前
基于java社交网络安全的知识图谱的构建与实现
开发语言·网络·深度学习·安全·web安全·php
Ronin-Lotus1 小时前
深度学习篇---Opencv中的机器学习和深度学习
python·深度学习·opencv·机器学习
论迹1 小时前
【二分算法】-- 三种二分模板总结
java·开发语言·算法·leetcode
信阳农夫1 小时前
Django解析跨域问题
后端·python·django
五花肉村长1 小时前
Linux-基础开发工具
linux·运维·服务器·开发语言·c++·visualstudio
孔令飞2 小时前
04 | 初始化 fastgo 项目仓库
开发语言·ai·云原生·golang·kubernetes
m0_371356152 小时前
【测试语言基础篇】Python基础之List列表
开发语言·python·list
大0马浓2 小时前
训练大模型LLM选择哪种开发语言最好
人工智能·python·训练