日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

【站内题解】十六道csdn每日一练Python题解

發布時間:2024/3/13 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【站内题解】十六道csdn每日一练Python题解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 題目一: 游樂園的門票
    • 1. 問題描述
    • 2. 輸入描述
    • 3. 輸出描述
    • 4. 示例
      • 4.1 輸入
      • 4.2 輸出
    • 5. 答案
      • 5.1 解法一
      • 5.2 解法二
  • 題目二:小橋流水人家
    • 1. 問題描述
    • 2. 輸入描述
    • 3. 輸出描述
    • 4. 示例
      • 4.1 輸入
      • 4.2 輸出
    • 5. 答案
  • 題目三:小藝讀書
    • 1. 問題描述
    • 2. 輸入描述
    • 3. 輸出描述
    • 4. 示例
      • 4.1 輸入
      • 4.2 輸出
    • 5. 答案
  • 題目四:鬼畫符門之宗門大比
    • 1. 問題描述
    • 2. 輸入描述
    • 3. 輸出描述
    • 4. 示例
      • 4.1 示例一
        • 4.1.1 輸入
        • 4.1.2 輸出
      • 4.2 示例二
        • 4.2.1 輸入
        • 4.2.2 輸出
    • 5. 答案
  • 題目五:硬幣劃分
    • 1. 問題描述
    • 2. 輸入描述
    • 3. 輸出描述
    • 4. 示例
      • 4.1 輸入
      • 4.2 輸出
    • 5. 答案
  • 題目六:餓龍咆哮-逃離城堡
    • 1. 題目描述
    • 2. 輸入描述
    • 3. 輸出描述
    • 4. 示例
      • 4.1 輸入
      • 4.2 輸出
    • 5. 答案
  • 題目七:嚴查槍火
    • 1. 題目描述
    • 2. 輸入描述
    • 3. 輸出描述
    • 4. 示例
      • 4.1 輸入
      • 4.2 輸出
    • 5. 答案
  • 題目八:鬼畫符門
    • 1. 題目描述
    • 2. 輸入描述
    • 3. 輸出描述
    • 4. 示例
      • 4.1 輸入
      • 4.2 輸出
    • 5. 答案
  • 題目九:收件郵箱
    • 1. 題目描述
    • 2. 輸入描述
    • 3. 輸出描述
    • 4. 示例
      • 4.1 輸入
      • 4.2 輸出
    • 5. 答案
  • 題目十:最長遞增的區間長度
    • 1. 題目描述
    • 2. 輸入描述
    • 3. 輸出描述
    • 4. 示例
      • 4.1 輸入
      • 4.2 輸出
    • 5. 答案
  • 題目十一:小玉家的電費
    • 1. 題目描述
    • 2. 輸入描述
    • 3. 輸出描述
    • 4. 示例
      • 4.1 輸入
      • 4.2 輸出
    • 5. 答案
  • 題目十二:單詞逆序
    • 1. 題目描述
    • 2. 輸入描述
    • 3. 輸出描述
    • 4. 示例
      • 4.1 輸入
      • 4.2 輸出
    • 5. 答案
  • 題目十三:小Q整數分割
    • 1. 題目描述
    • 2. 輸入描述
    • 3. 輸出描述
    • 4. 示例
      • 4.1 輸入
      • 4.2 輸出
    • 5. 答案
  • 題目十四:新型美麗數列
    • 1. 題目描述
    • 2. 輸入描述
    • 3. 輸出描述
    • 4. 示例
      • 4.1 輸入
      • 4.2 輸出
    • 5. 答案
  • 題目十五:熊孩子拜訪
    • 1. 題目描述
    • 2. 數據范圍
    • 3. 輸入描述
    • 4. 輸出描述
    • 5. 示例
      • 5.1 輸入
      • 5.2 輸出
    • 6. 答案
  • 題目十六:走樓梯
    • 1. 題目描述
    • 2. 輸入描述
    • 3. 輸出描述
    • 4. 示例
      • 4.1 輸入
      • 4.2 輸出
    • 5. 答案



注:本文內容均整合自站內文章

題目一: 游樂園的門票

1. 問題描述

某游樂園院按照游客身高段收取票價:不到 1.0米 的游客免費; 1.0~1.2 米的游客為 80 元;超過 1.2 米的游客為 150 元。

請編寫一個死循環,每次循環開始先使用print()語句一行輸出字符串"Please tell me your height!Enter ‘quit’ to end the program."。

如果讀取到的字符串等于’quit’,則使用 break 語句退出循環,否則將字符串轉成浮點數,如果小于1.0米,則使用print()語句一行輸出字符串’Your admission cost is 0 yuan.‘;

如果大于等于1.0米且小于等于1.2米,則使用print()語句一行輸出字符串’Your admission cost is 80 yuan.’;
如果大于1.2米,則使用print()語句一行輸出字符串’Your admission cost is 150 yuan.‘。

然后本次循環結束,再次進入 while 循環中的條件測試。

2. 輸入描述

保證每一行的輸入只有浮點數或字符串’quit’,且保證數字合法,范圍在[0, 3]。

3. 輸出描述

按題目描述進行輸出即可。

4. 示例

4.1 輸入

0.5
1.2
quit

4.2 輸出

Please tell me your height!
Enter ‘quit’ to end the program.

5. 答案

5.1 解法一

while True:try:print("Please tell me your height!\nEnter 'quit' to end the program.")a = input()if a == 'quit':breakelif float(a) < 1.0:print('Your admission cost is 0 yuan.')elif 1.0 < float(a) <= 1.2:print('Your admission cost is 80 yuan.')else:print('Your admission cost is 150 yuan.')except:break

5.2 解法二

operators_dict = {'<': 'less than','==': 'equal'} print('Here is the original dict:')for k in sorted(operators_dict):print(f'Operator {k} means {operators_dict[k]}.') print() operators_dict['>'] = 'greater than' print('The dict was changed to:')for k in sorted(operators_dict):print(f'Operator {k} means {operators_dict[k]}.')

題目二:小橋流水人家

1. 問題描述

在n*m的地圖上,存在一個噴水點(x,y). 如果相鄰的位置低于有水的地方,水就能流到相鄰的某位置。 已知各個地方的海拔高度,求水的最大覆蓋個格子數。

2. 輸入描述

第一行輸入n,m,x,y.(1<=n,m<=1000,1<=x<=n,1<=y<=m) 以下n行每行m個整數,表示每個格子的海拔.(1<=h<=1000)

3. 輸出描述

輸出最大覆蓋格子數

4. 示例

4.1 輸入

3 5 2 3
3 4 1 5 1
2 3 3 4 7
4 1 4 1 1

4.2 輸出

6

5. 答案

class Solution:def __init__(self) -> None:passdef changshi(self, vector, matrix, n, m, a, b):ll = [[-1, 0], [1, 0], [0, -1], [0, 1]]for i in range(4): # 四邊尋找 上下右左a1 = a + ll[i][0]b1 = b + ll[i][1]if 0 <= a1 <= n - 1 and 0 <= b1 <= m - 1:if vector[a][b] > vector[a1][b1]: # 若找到matrix[a1][b1] = 1 # 標記位置self.changshi(vector, matrix, n, m, a1, b1)return matrixdef solution(self, n, m, x, y, vector):result = 0a, b = n - y, x - 1matrix = [[0 for i in range(m)] for i in range(n)]matrix[n - y][x - 1] = 1matrix = self.changshi(vector, matrix, n, m, a, b)for i in range(n):for j in range(m):if matrix[i][j] == 1:result = result + 1print(matrix)return resultif __name__ == "__main__":arr_temp = [int(item) for item in input().strip().split()]n = int(arr_temp[0])m = int(arr_temp[1])x = int(arr_temp[2])y = int(arr_temp[3])vector = []for i in range(n):vector.append([int(item) for item in input().strip().split()])sol = Solution()result = sol.solution(n, m, x, y, vector)print(result)

題目三:小藝讀書

1. 問題描述

書是人類進步的階梯。
小藝每周因為工作的原因會選擇性的每天多讀幾頁或者少讀幾頁。
小藝想知道一本n頁的書她會在周幾讀完。

2. 輸入描述

第一行輸入n(1<=n<=1000);
第二行輸入7個整數,分別表示周一~周日的讀書頁數p(0<=p<=1000)。(不考慮7個整數都為0的情況)

3. 輸出描述

輸出答案。(1-7)

4. 示例

4.1 輸入

100
15 20 20 15 10 30 45

4.2 輸出

6

5. 答案

class Solution:def __init__(self) -> None:passdef solution(self, n, pages):result = None# TODO: 請在此編寫代碼page=sum(pages)book=n%pagefor i in range(7):book-=pages[i]if(book<=0):result=i+1breakreturn resultif __name__ == "__main__":n = int(input().strip())pages = [int(item) for item in input().strip().split()]sol = Solution()result = sol.solution(n, pages)print(result)

題目四:鬼畫符門之宗門大比

1. 問題描述

給定整數序列A。

求在整數序列A中連續權值最大的子序列的權值。

2. 輸入描述

第一行輸入整數n.(1<=n<=1000)
第二行輸入n整數a。(-1000<=a<=1000)

3. 輸出描述

輸出子序列最大權值。

4. 示例

4.1 示例一

4.1.1 輸入

5
-1 2 3 -2 4

4.1.2 輸出

7

4.2 示例二

4.2.1 輸入

7
1 -4 6 7 -10 8 0

4.2.2 輸出

11

5. 答案

class Solution:def __init__(self) -> None:passdef solution(self, n, arr):result = None# TODO: 請在此編寫代碼num=[]m=0for i in arr:m+=iif m<=0:m=0else:num.append(m)result=max(num)return resultif __name__ == "__main__":n = int(input().strip())arr = [int(item) for item in input().strip().split()]sol = Solution()result = sol.solution(n, arr)print(result)

題目五:硬幣劃分

1. 問題描述

有1分,2分,5分,10分四種硬幣,每種硬幣數量無限,給定n分錢(n<100000),有多少中組合可以組成n分錢?

2. 輸入描述

輸入整數n.(1<=n<=100000)

3. 輸出描述

輸出組合數,答案對1e9+7取模。

4. 示例

4.1 輸入

13

4.2 輸出

16

5. 答案

class Solution:def __init__(self) -> None:passdef solution(self, n):result = None# TODO: 請在此編寫代碼coins=[1,2,5,10]arr=[0]*1000001arr[0]=1for i in coins:for j in range(i,n+1):arr[j]=(arr[j]+arr[j-i])%(1e9+7)result=int(arr[n])return resultif __name__ == "__main__":n = int(input().strip())sol = Solution()result = sol.solution(n)print(result)

題目六:餓龍咆哮-逃離城堡

1. 題目描述

小藝醬誤入龍族結界,被惡龍帶回城堡,小藝醬決定逃離城堡,逃離龍族結界。總路程為c, 小藝醬的速度是vp,餓龍速度為vd。餓龍會在t小時后發現小藝醬出逃。小藝醬擔心自己跑不出去,準備了好多珍寶。 每當餓龍追上自己的時候小藝醬就會丟下一個珍寶,餓龍撿到珍寶會返回自己的城堡進行研究,研究f小時后,再出城堡追趕小藝。小藝想知道自己至少需要丟多少珍寶才能讓自己安全逃出結界。

2. 輸入描述

輸入整數vp,vd,t,f,c。(1<=vp,cd<=100,1<=t,f<=10,1<=c<=1000)

3. 輸出描述

輸出答案。

4. 示例

4.1 輸入

1
2
1
1
10

4.2 輸出

2

5. 答案

class Solution:def __init__(self) -> None:passdef solution(self, vp, vd, t, f, c):result = None# TODO: 請在此編寫代碼result=0sp=vp*twhile sp<c:if vd-vp<=0:return 0rt=sp/(vd-vp)sp+=vp*rtif sp<c:result+=1sp+=vp*(rt+f)return resultif __name__ == "__main__":vp = int(input().strip())vd = int(input().strip())t = int(input().strip())f = int(input().strip())c = int(input().strip())sol = Solution()result = sol.solution(vp, vd, t, f, c)print(result)

題目七:嚴查槍火

1. 題目描述

X國最近開始嚴管槍火。 像是“ak”,“m4a1”,“skr”。都是明令禁止的。 現在小Q查獲了一批違禁物品其中部分是槍支。

小Q想知道自己需要按照私藏槍火來關押多少人。 (只有以上三種槍被視為違法)

2. 輸入描述

第一行輸入整數n.(1<=n<=10000)表示攜帶違禁物品的人數。

以下n行表示違禁物品的名稱。

3. 輸出描述

輸出需要按照私藏槍火來關押的人。

4. 示例

4.1 輸入

3
Dsd
ak
232asd

4.2 輸出

1

5. 答案

class Solution:def __init__(self) -> None:passdef solution(self, n, vector):result = None# TODO: 請在此編寫代碼result = 0for i in range(n):if vector[i]=="ak" or vector[i]=="m4a1" or vector[i]=="skr":result+=1return resultif __name__ == "__main__":n = int(input().strip())vector = []for i in range(n):vector.append(input().strip())s = Solution()result = s.solution(n, vector)print(result)

題目八:鬼畫符門

1. 題目描述

鬼畫符門,每年都會統計自己宗門鬼畫符消耗的數量,往年一直是大師兄管理, 但是這次鬼藝接手了, 你能幫鬼藝寫一個程序統計每年消耗數量最多的鬼畫符嗎?

2. 輸入描述

第一行輸入整數n.(1<=n<=1000)

以下n行輸入n個字符串。

3. 輸出描述

輸出答案字符串。

4. 示例

4.1 輸入

5
red
red
green
grenn
hen

4.2 輸出

red

5. 答案

class Solution:def __init__(self) -> None:passdef solution(self, n, vector):result = None# TODO: 請在此編寫代碼dict={}for i in vector:if i not in dict:dict[i]=1else:dict[i]+=1t=max(dict.values())for k,v in dict.items():if v==t:result=kbreakreturn resultif __name__ == "__main__":n = int(input().strip())vector = []for i in range(n):vector.append(input().strip())s = Solution()result = s.solution(n, vector)print(result)

題目九:收件郵箱

1. 題目描述

已知字符串str,str表示郵箱的不標準格式。

其中”.”會被記錄成”dot”,”@”記錄成”at”。

寫一個程序將str轉化成可用的郵箱格式。(可用格式中字符串中除了開頭結尾所有”dot”,都會被轉換,”at”只會被轉化一次,開頭結尾的不轉化)

2. 輸入描述

輸入字符串str.(1<=strlen(str)<=1000)

3. 輸出描述

輸出轉化后的格式。

4. 示例

4.1 輸入

mxyatoxcoderdotcom

4.2 輸出

mxy@oxcoder.com

5. 答案

class Solution:def __init__(self) -> None:passdef solution(self, str):result = None# TODO: 請在此編寫代碼result=str.replace('dot','.')result=result.replace('at','@',1)if result[0]==".":result="dot"+result[1:]if result[0]=="@":result="at"+result[1:]if result[-1]==".":result=result[:-1]+"dot"if result[-1]=="@":result=result[:-1]+"at"return resultif __name__ == "__main__":str = input().strip()s = Solution()result = s.solution(str)print(result)

題目十:最長遞增的區間長度

1. 題目描述

給一個無序數組,求最長遞增的區間長度。如:[5,2,3,8,1,9] 最長區間 2,3,8 長度為 3

2. 輸入描述

第一行輸入整數n。(1<=n<=10000)表示數組的大小
第二行給出n個整數a.(-1e9<=a<=1e9)

3. 輸出描述

輸出轉化后的格式。

4. 示例

4.1 輸入

6
5 2 3 8 1 9

4.2 輸出

3

5. 答案

class Solution:def __init__(self) -> None:passdef solution(self, n, arr):result = None# TODO: 請在此編寫代碼result=0t=1arr.append(-1e9-1)for i in range(n):if arr[i+1]>arr[i]:t+=1else:result=max(result,t)t=1return resultif __name__ == "__main__":n = int(input().strip())arr = [int(item) for item in input().strip().split()]s = Solution()result = s.solution(n, arr)print(result)

題目十一:小玉家的電費

1. 題目描述

小玉家今天收到了一份電費通知單。上面寫著:月用電量在150千瓦時及以下部分按每千瓦時0.4463元執行;月用電量在151~400千瓦時的部分按每千瓦時0.4663元執行;月用電量在401千瓦時及以上部分按每千瓦時0.5663元執行。請根據電價規定,計算出應交的電費應該是多少。

2. 輸入描述

輸入一個整數,表示用電總計(單位以千瓦時計),不超過10000。

3. 輸出描述

輸出一個數,保留到小數點后1位(單位以元計,保留到小數點后一位)。

4. 示例

4.1 輸入

267

4.2 輸出

121.5

5. 答案

import sysamount = int(sys.stdin.readline().strip()) result = 0if amount <= 150:result = 0.4463 * amount elif 151 <= amount <= 400:result = 0.4463 * 150 + 0.4663 * (amount - 150) else:result = 0.4463 * 150 + 0.4663 * 250 + 0.5663 * (amount - 400)print('%.1f' % result) # 注意保留小數位

題目十二:單詞逆序

1. 題目描述

對于一個字符串,請設計一個算法,只在字符串的單詞間做逆序調整。例如:輸入“I am a boy!”,輸出“boy! a am I”。

2. 輸入描述

輸入一行字符串str。(1 <= strlen(str) <= 10000)

3. 輸出描述

返回逆序后的字符串。

4. 示例

4.1 輸入

It’s a dog!

4.2 輸出

dog! a It’s

5. 答案

import syss = sys.stdin.readline().strip().replace('\n', '') lst = s.split(' ') for i in range(len(lst) - 1, -1, -1):print(lst[i], end='')if i != 0:print(' ', end='')

題目十三:小Q整數分割

1. 題目描述

小Q決定吧一個整數n,分割成k個整數。

每個整數必須大于等于1。

小Q有多少方案。

2. 輸入描述

輸入整數n,k。(1 <= n, k<= 100)

3. 輸出描述

輸出方案數。答案對1e9+7取模。

4. 示例

4.1 輸入

3 3

4.2 輸出

1

5. 答案

import sysn, k = map(int, sys.stdin.readline().split())if k > n: # 特判下k > n的情況print(0)sys.exit()a = b = 1 for i in range(1, k):a *= (n - i)b *= ia /= b print('%.0f' % (a % (1e9 + 7)))

題目十四:新型美麗數列

1. 題目描述

定義美麗數列A:

  • 數列中相鄰的數越是靠內相對大小加一,a[2]=a[1]+1,a[n-2]=a[n-1]+1…
  • 距離邊緣距離相等的數的大小相等:a[0] = a[n-1],a[1] = a[n-2]…
    通過修改數列中的值使得給定數列變成美麗數列。
    修改后的值必須仍是正整數。
  • 小Q有多少方案。

    2. 輸入描述

    第一行輸入整數n。(1 <= n <= 1000)表示數列的大小。

    第二行輸入n個整數。

    3. 輸出描述

    輸出最小修改次數。

    4. 示例

    4.1 輸入

    3
    1 1 1

    4.2 輸出

    1

    5. 答案

    import math import sysdef diffnum(list):map = {}for index in range(len(list)):map[str(index)] = str(list[index] - index)return mapdef countnum(map):map1 = {}for key,value in map.items():if value in map1.keys():map1[str(value)] = map1[str(value)] + 1else:map1[str(value)] = 1return map1list = [1,2,3,2,5,8,5,4,5,2,1]split_num = math.ceil(len(list) / 2)left_list_num = diffnum(list[0:split_num])left_list_count = countnum(left_list_num)list_re = list[::-1]right_list_num = diffnum(list_re[0:split_num])right_list_count = countnum(right_list_num)sum_map = left_list_count.copy()for key,value in right_list_count.items():if key in sum_map.keys():sum_map[key] = sum_map[key] + valueelse:sum_map[key] = valuemax_value = sorted(sum_map.values())[-1]log = sys.maxsizefor key,value in sum_map.items():if max_value == value:log = keybreakif log == sys.maxsize:print("錯誤")exit(1)count = 0for key,value in left_list_num.items():if value != log :list[int(key)] = list[int(key)] + (int(log) - int(value))count = count + 1list = list[::-1]num_log = 0if len(list) % 2 !=0:num_log = 1for key,value in right_list_num.items():if num_log == 1 and key == str(split_num-1):breakif value != log :list[int(key)] = list[int(key)] + (int(log) - int(value))count = count + 1print(count) print(list)

    題目十五:熊孩子拜訪

    1. 題目描述

    已知存在一個長度為n的整數序列A,A中所有元素按照從小到大排序,現在執行倒置一段序列。請你找出A序列的倒置子序列。如果沒有,輸出“0 0”。

    2. 數據范圍

    1<=n<=1000

    1<=num<=10000

    3. 輸入描述

    第一行輸入整數n。(1 <= n <= 1000)表示數列的大小。

    第二行輸入n個整數。

    4. 輸出描述

    輸出最小修改次數。

    5. 示例

    5.1 輸入

    4
    1 3 2 4

    5.2 輸出

    2 3

    6. 答案

    class Solution:def __init__(self) -> None:passdef solution(self, n, arr):result = []# 保存右值max = 0# 保存左值min = 0next = 0for item in arr:if next>item and item>max:max=nextmin=itemelif next<min and item>max:min=nextnext=itemresult.append(str(min))result.append(str(max))if len(result)==0:result=["0","0"]return resultif __name__ == "__main__":n = int(input().strip())arr = [int(item) for item in input().strip().split()]sol = Solution()result = sol.solution(n, arr)print(" ".join(result))

    題目十六:走樓梯

    1. 題目描述

    現在有一截樓梯, 根據你的腿長, 你一次能走 1 級或 2 級樓梯, 已知你要走 n 級樓梯才能走到你的目的樓層, 請實現一個方法, 計算你走到目的樓層的方案數。

    2. 輸入描述

    輸入你要去的樓層。

    3. 輸出描述

    輸出你走到目的樓層的方案數。

    4. 示例

    4.1 輸入

    5

    4.2 輸出

    8

    5. 答案

    class Solution:def __init__(self) -> None:passdef solution(self, n):if isinstance(n, int) and n > 0:basic_dic = {1: 1, 2: 2}if n in basic_dic.keys():return basic_dic[n]else:return self.solution(n - 1) + self.solution(n - 2)else:return Falseif __name__ == "__main__":n = int(input().strip())sol = Solution()result = sol.solution(5)print(result)

    總結

    以上是生活随笔為你收集整理的【站内题解】十六道csdn每日一练Python题解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。