第一天:
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)
执行结果:(不理想优化中)
 
在这里插入代码片



















