python基础知识点(蓝桥杯python科目个人复习计划73)

第一题:奇怪的捐赠

题目描述:

地产大佬先生临终的遗愿是拿出100万元给x社区的居民抽奖。

麻烦的是,他有个很奇怪的要求:

(1)100万元正好被分成若干份,不能有剩余。每份必须是7的若干次方元。比如1元、7元、49元。

(2)相同金额的分数不能超过5份。

(3)在满足上述条件的情况下,分成的份数越多越好。

请你帮忙计算一下,最多可以分成多少份?

python 复制代码
# 两次遍历,从大到小,保证不会有剩余,然后遍历5次
a = 1000000
ans = 0
for i in range(7,-1,-1):
  for j in range(5):
    if (a - 7 ** i) >= 0:
      ans += 1
      a -= 7 ** i
    else:
      break
print(ans)

第二题:最长回文子串

题目描述:

给定一个字符串s,请你求出s的最长回文字符串。

输入描述:

输入一行,包含一个字符串s;

1 <= |s| <= 5 * 10^5,保证s只包含大写字母、小写字母和数字。

输出描述:

输出共1行,包含一个整数,表示答案。

python 复制代码
import os
import sys

# 请在此输入您的代码
def longest_palindrome(s: str) -> int:
    def expand_around_center(left: int, right: int) -> int:
        while left >= 0 and right < len(s) and s[left] == s[right]:
            left -= 1
            right += 1
        return right - left - 1

    max_length = 0
    for i in range(len(s)):
        # 以s[i]为中心的最长回文子串
        len1 = expand_around_center(i, i)
        # 以s[i]和s[i+1]为中心的最长回文子串
        len2 = expand_around_center(i, i + 1)
        # 更新最大长度
        max_length = max(max_length, len1, len2)

    return max_length

# 读取输入
s = input()
# 计算最长回文字符串的长度
result = longest_palindrome(s)
# 输出结果
print(result)

这个题我用的是中心扩展算法。


第三题:回文判定

题目描述:

给定一个长度为n的字符串s,请你判断字符串s是否回文。

输入描述:

输入仅一行包含一个字符串s。

1 <= |s| <= 10^6,保证s只包含大小写字母。

输出描述:

若字符串s为回文串,则输出Y,否则输出N。

python 复制代码
import os
import sys

# 请在此输入您的代码
s = input()
if s[:] == s[::-1]:
  print("Y")
else:
  print("N")

ok,这次就做这几个题,明天继续!

相关推荐
计算机小白一个1 小时前
蓝桥杯 Java B 组之设计 LRU 缓存
java·算法·蓝桥杯
欧了1113 小时前
洛谷P9240 [蓝桥杯 2023 省 B] 冶炼金属
职场和发展·蓝桥杯·洛谷·蓝桥杯大学b组c语言
qy发大财4 小时前
加油站(力扣134)
算法·leetcode·职场和发展
qy发大财4 小时前
柠檬水找零(力扣860)
算法·leetcode·职场和发展
计算机小白一个8 小时前
蓝桥杯 Java B 组之背包问题、最长递增子序列(LIS)
java·数据结构·蓝桥杯
SuperW8 小时前
蓝桥杯——lcd显示
职场和发展·蓝桥杯
gyeolhada11 小时前
2025蓝桥杯JAVA编程题练习Day5
java·数据结构·算法·蓝桥杯
StickToForever12 小时前
第4章 信息系统架构(三)
经验分享·笔记·学习·职场和发展
SylviaW0813 小时前
python-leetcode 35.二叉树的中序遍历
算法·leetcode·职场和发展
篮l球场13 小时前
LeetCodehot 力扣热题100
算法·leetcode·职场和发展