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,这次就做这几个题,明天继续!

相关推荐
Swift社区7 小时前
LeetCode - #139 单词拆分
算法·leetcode·职场和发展
Dong雨8 小时前
力扣hot100-->栈/单调栈
算法·leetcode·职场和发展
trueEve10 小时前
SQL,力扣题目1369,获取最近第二次的活动
算法·leetcode·职场和发展
ahadee10 小时前
蓝桥杯每日真题 - 第19天
c语言·vscode·算法·蓝桥杯
恃宠而骄的佩奇12 小时前
i春秋-签到题
web安全·网络安全·蓝桥杯
ahadee13 小时前
蓝桥杯每日真题 - 第18天
c语言·vscode·算法·蓝桥杯
召木14 小时前
C++小白实习日记——Day 2 TSCNS怎么读取当前时间
c++·职场和发展
St_Ludwig14 小时前
C语言 蓝桥杯某例题解决方案(查找完数)
c语言·c++·后端·算法·游戏·蓝桥杯
程序员奇奥15 小时前
京东面试题目分享
面试·职场和发展
互联网杂货铺15 小时前
自动化测试基础知识总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例