第一天:
1:题目名称:代写匿名信
时间限制:1000ms内存限制:256M
题目描述
小Q想要匿名举报XX领导不务正业! 小Q害怕别人认出他的字迹。 他选择从报纸上剪裁下来英文字母组成自己的举报信。 现在小Q找来了报纸,和自己的举报信的Txt, 你能帮他确定一下是否能够完成匿名信吗?
输入描述:第一行输入报纸上的英文。 第二行输入小Q匿名信的内容。 (1<=len(str)<=10000)
输出描述:如果能完成输出”Yes”,否则输出”No”。
示例
输入:Asdadsadas dsadasdas
输出:Yes
作业代码:
# 请关闭中文输入法,用英文的字母和标点符号。
# 如果你想运行系统测试用例,请点击【执行代码】按钮,如果你想提交作答结果,请点击【提交】按钮,
# 注意:除答案外,请不要打印其他任何多余的字符,以免影响结果验证
# 本OJ系统是基于 OxCoder 技术开发,网址:www.oxcoder.com
# 模版代码提供基本的输入输出框架,可按个人代码习惯修改
class Solution:
def __init__(self):
pass
def solution(self, words, msg):
# 去除报纸和匿名信中的空格和换行符
words = newspaper_text.replace(' ', '').replace('\n', '')
msg = anonymous_letter.replace(' ', '').replace('\n', '')
# 判断小Q的匿名信是否可以从报纸上拼出
if all(char in newspaper_text for char in anonymous_letter):
return "Yes"
else:
return "No"
if __name__ == "__main__":
newspaper_text = input().strip() # 输入报纸上的英文
anonymous_letter = input().strip() # 输入小Q的匿名信内容
sol = Solution()
result = sol.solution(newspaper_text, anonymous_letter)
print(result)
执行结果:
2:题目名称:计数问题
1题目描述
试计算在区间 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 出现的次数。
作业代码:
class Solution:
def solution(self, n, x):
count = 0
for i in range(1, n+1):
num = i
while num > 0:
digit = num % 10
if digit == x:
count += 1
num //= 10
return count
if __name__ == "__main__":
n, x = map(int, input().split())
sol = Solution()
result = sol.solution(n, x)
print(result)
执行结果:
class Solution:
def solution(self, n, x):
count = 0
for i in range(1, n+1):
num = i
while num > 0:
digit = num % 10
if digit == x:
count += 1
num //= 10
return count
if __name__ == "__main__":
n, x = map(int, input().split())
sol = Solution()
result = sol.solution(n, x)
print(result)
3:题目名称:等差数列
1题目描述
给定一已排序的正整数组成的数组,求需要在中间至少插入多少个数才能将其补全成为一等差数列。 “在中间插入”的意思是:不能在第一个数之前,或最后一个数之后插入数。
2输入描述:
仅有一行输入,即已排序的正整数数组
3输出描述:
若在原数组中间至少插入m个数可变成等差数列(m>=0),输出m。 如果原数组无法变成等差数列,则输出“NaN”。
作业代码:
def min_insertions(arr):
n = len(arr)
if n < 3:
return "NaN"
diff = arr[1] - arr[0]
count = 0
for i in range(1, n):
if arr[i] - arr[i-1] != diff:
insert_count = (arr[i] - arr[i-1]) // diff - 1
count += insert_count
return count
if __name__ == "__main__":
arr = list(map(int, input().split()))
result = min_insertions(arr)
print(result)
执行结果:(不理想优化中)
在这里插入代码片