1
1.编 写 一 个 程 序 , 提 示 用 户 输 入 一 个 矩 形 的 长 度 和 宽 度 , 并 输 出 其 面 积
NOC ¸´Èü python Ä£ÄâÌâ
。
length = float(input())
width = float(input())
area = length * width
print(area)
2.试 计 算 在 区 间 1 到 n的 所 有 整 数 中 ,数 字 x(0≤ x≤ 9)共 出 现 了 多 少 次 ? 例 如 ,
在 1到 11中 , 即 在 1,2,3,4,5,6,7,8,9,10,11 中 , 数 字 1 出 现 了 4 次 。
输 入 : 2行 , 分 别 包 括 2个 整 数 n,x。
输 出 : 1个 整 数 , 表 示 x出 现 的 次 数 。
n=input()
x=input()
s=""
for y in range(1,int(n)+1):
s += str(y)
print(s.count(x))
3.给 定 一 个 不 含 重 复 数 字 的 数 组 nums, 返 回 其 所 有 可 能 的 全 排 列
示 例 1:
输 入 : num s= [1,2,3]输 出 : [[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]
示 例 2:
输 入 : num s= [0,1]输 出 : [[0,1],[1,0]]
示 例 3:
输 入 : num s= [1]输 出 : [[1]]
2
def permute(nums):
if not nums:
return [[]]
result = [[]]
for num in nums:
new_result = []
for res in result:
for i in range(len(res) + 1):
new_result.append(res[:i] + [num] + res[i:])
result = new_result
return result
# 示 例 用 法
nums = [1, 2, 3]
print("所 有 可 能 的 全 排 列 为 :", permute(nums))
4.给 你 一 个 字 符 串 s, 找 到 s中 最 长 的 回 文 子 串
“ 如 果 字 符 串 的 反 序 与 原 始 字 符 串 相 同 , 则 该 字 符 串 称 为 回 文 字 符 串 。 ”
输 入 : s= "babad"
输 出 : "bab"
解 释 : "aba" 同 样 是 符 合 题 意 的 答 案 。
3
def longest_palindrome(s):
if len(s) < 2:
return s
def expand(left, right):
while left >= 0 and right < len(s) and s[left] == s[right]:
left -= 1
right += 1
return s[left + 1:right]
longest = ""
for i in range(len(s)):
odd_palindrome = expand(i, i)
even_palindrome = expand(i, i + 1)
longest = max(longest, odd_palindrome, even_palindrome,
key=len)
return longest
# 示 例 用 法
s = "babad"
print("最 长 回 文 子 串 为 :", longest_palindrome(s))
NOC复赛-Python模拟题,2024年NOC软件创意编程Python复赛模拟真题试卷