算法笔记

迟秋白 Lv2

算法学习+刷题笔记

跳转

购物单

参考【❤重点❤】【牛客网 - 华为机试】HJ16 购物单——动态规划 - your_棒棒糖 - 博客园 (cnblogs.com)

密码验证合格程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def check(s):
if len(s) <= 8:
return 0
a, b, c, d = 0, 0, 0, 0
for item in s:
if ord('a') <= ord(item) <= ord('z'):
a = 1
elif ord('A') <= ord(item) <= ord('Z'):
b = 1
elif ord('0') <= ord(item) <= ord('9'):
c = 1
else:
d = 1
if a + b + c + d < 3:
return 0
for i in range(len(s)-3):
if len(s.split(s[i:i+3])) >= 3:
return 0
return 1

while 1:
try:
print('OK' if check(input()) else 'NG')
except:
break

合唱队

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import sys


# 获取最大增长子序列
def get_max_up_sub_arr(count, arr):
up_arr = [1 for x in range(count)]
for i in range(count):
for j in range(i):
if arr[j] < arr[i]:
up_arr[i] = max(up_arr[i], up_arr[j]+1)
return up_arr


while True:
try:
count = int(input())
arr = list(map(int, input().split(' ')))
left_up_arr = get_max_up_sub_arr(count, arr)
right_up_arr = get_max_up_sub_arr(count, arr[::-1])[::-1]
print(count - max(i + j - 1 for i, j in zip(left_up_arr, right_up_arr)))
except EOFError:
break


  • 标题: 算法笔记
  • 作者: 迟秋白
  • 创建于 : 2024-04-24 15:35:18
  • 更新于 : 2025-05-04 18:03:30
  • 链接: https://chiqiubai.cn/2024/04/24/算法笔记/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论