'''
特殊的三角形
输入:9
输出:
1
121
12321
1234321
123454321
12345654321
1234567654321
123456787654321
12345678987654321
输入:C
输出:
A
ABA
ABCBA
'''
n =input()iford(n)<65:
n =int(n)for i inrange(1, n+1):for j inrange(1, n +1- i):print(' ', end='')for j inrange(1, i+1):print(j, end='')for j inrange(i ,1,-1):print(j-1, end='')print()else:
ch =ord(n)for i inrange(65, ch +1):for j inrange(1, ch - i +1):print(' ', end='')for j inrange(65, i +1):print(chr(j), end='')for j inrange(i,65,-1):print(chr(j -1), end='')print()
字母三角形
'''
3
A
BBB
CCCCC
'''
n =int(input())for i inrange(1, n+1):
space =(n - i)*' '
ch =chr(i+64)*(2*i -1)print(space+ch)
字符串
str=list(input())# a=97 z=122 A=65 Z=90for i inrange(len(str)):if65<=ord(str[i])<=122:ifstr[i]=='z':str[i]='a'elifstr[i]=='Z':str[i]='A'else:str[i]=chr(ord(str[i])+1)else:continuefor i instr:print(i, end='')
寻找字符串
'''
输入:
ossosso
osso
输出:
2
'''str=input()
target =input()
ans =0
len_t =len(target)for i inrange(len(str)):ifstr[i]== target[0]:ifstr[i:i+len_t-1]== target[0:len_t-1]:
ans +=1print(ans)
恋爱纪念日
year, month, day, k =map(int,input().split())
day_ =[0,31,28,31,30,31,30,31,31,30,31,30,31]for i inrange(1, k+1):if year %100!=0and year %4==0or year %400==0:#判断是否为闰年
day_[2]=29else:
day_[2]=28
day +=1if day == day_[month]:
day =0
month +=1if month ==13:
month =1
year +=1print("{:d}-{:0>2d}-{:0>2d}".format(year, month, day))
day3代码能力提升
机器人
'''
蒜头君收到了一份礼物,是一个最新版的机器人。这个机器人有 4 种指令:
forward x,前进x米。
back x,先向后转,然后前进x米。
left x,先向左转,然后前进x米。
right x,先向右转,然后前进x米。
现在把机器人放在坐标轴原点,起始朝向为x轴正方向。经过一系列指令以后,你能告诉蒜头君机器人的坐标位置吗。坐标轴上一个单位长度表示1米。
样例输入:
10
back -9
left 3
left 8
back 15
right 10
right -7
right -3
left 11
right 17
left 3
样例输出:
9 -7
'''
n =int(input())
dx =[0,-1,0,1]#上左下右
dy =[1,0,-1,0]#上左下右
now_dir =3
nowx =0
nowy =0for i inrange(n):dir, x =map(str,input().split())
x =int(x)ifdir[0]=='b':
now_dir =(now_dir+2)%4# 向后elifdir[0]=='l':
now_dir =(now_dir+1)%4# 向左elifdir[0]=='r':
now_dir =(now_dir+3)%4# 向右
nowx += dx[now_dir]* x
nowy += dy[now_dir]* x
print(nowx, nowy)
'''
猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了,求第一天共摘了多少桃子?
'''defsolve(x):if x == n:return1else:return(solve(x+1)+1)*2if __name__ =='__main__':
n =int(input())# n=10时就是猴子吃桃问题print(solve(1))
day6:深度优先搜索
踏青
'''
5 6
.#....
..#...
..#..#
...##.
.#....
5 6
. # . . . .
. . # . . .
. . # . . #
. . . # # .
. # . . . .
'''defdfs(x, y):if x <0or y <0or x > n -1or y > m -1or vis[x][y]==1or arr[x][y]=='.':return
vis[x][y]=1
dfs(x -1, y)
dfs(x +1, y)
dfs(x, y +1)
dfs(x, y -1)if __name__ =='__main__':
n, m =map(int,input().split())# 当输入中有空格分隔开时
arr =[list(map(str,input().split()))for _ inrange(n)]# 当输入没有空格分隔开时# arr = []# for i in range(n):# str = input()# arr.append(list(str))
vis =[[0for _ inrange(m)]for _ inrange(n)]# 判断是否走过,0为未走过,1为走过
ans =0for i inrange(n):for j inrange(m):if vis[i][j]==0and arr[i][j]=='#':
dfs(i,j)
ans +=1print(ans)
最大的蛋糕数
'''
5 6
.#....
..#...
..#..#
...##.
.#....
2
'''defdfs(x, y):if x <0or y <0or x > n -1or y > m -1or vis[x][y]==1or arr[x][y]=='.':return
vis[x][y]=1global tmp
tmp +=1
dfs(x -1, y)
dfs(x +1, y)
dfs(x, y +1)
dfs(x, y -1)if __name__ =='__main__':
n, m =map(int,input().split())# 当输入中有空格分隔开时# arr = [list(map(str, input().split())) for _ in range(n)]# 当输入没有空格分隔开时
arr =[]for i inrange(n):str=input()
arr.append(list(str))
vis =[[0for _ inrange(m)]for _ inrange(n)]# 判断是否走过,0为未走过,1为走过
ans =0for i inrange(n):for j inrange(m):if vis[i][j]==0and arr[i][j]=='#':
tmp =0
dfs(i,j)if tmp > ans:
ans = tmp
print(ans)
迷宫的方案数
'''
输入:
5 5
s####
.####
.####
.####
....e
输出:
1
'''defdfs(x,y):if x > n -1or y > m -1or x <0or y <0or vis[x][y]==1or maze[x][y]=='#':returnif maze[x][y]=='e':global ans
ans +=1return
vis[x][y]=1
dfs(x-1,y)
dfs(x+1,y)
dfs(x,y-1)
dfs(x,y+1)
vis[x][y]=0# 将走过的路删除if __name__ =='__main__':
n,m =map(int,input().split())# 输入迷宫
maze =[]
vis =[[0for _ inrange(m)]for _ inrange(n)]
ans =0for _ inrange(n):
val =input()
maze.append(list(val))# 起始坐标
x =0
y =0for i inrange(n):for j inrange(m):if maze[i][j]=='s':
x = i
y = j
breakelse:continuebreak
dfs(x,y)print(ans)
家谱
'''
题意:输入一个n,接下来有n-1行。
输入父亲和儿子
求n个人,每个人的直系后代有多少
输入:
4
1 2
1 3
2 4
输出:
1 3
2 1
3 0
4 0
'''defdfs(u):
cnt =0for i inrange(len(son[u])):
cnt += dfs(son[u][i])
ans[u]= cnt
return cnt +1if __name__ =='__main__':
n =int(input())
son =[[]for _ inrange(n+1)]# 存放各个父辈的孩子
ans =[0for _ inrange(n+1)]
f =[0for _ inrange(n+1)]# 非True即为祖宗for i inrange(n-1):
x,y =map(int,input().split())
son[x].append(y)
f[y]=Truefor i inrange(1, n+1):if f[i]!=True:
u = i # 找到祖宗break
dfs(u)for i inrange(1, n+1):print(i, ans[i])
马的覆盖点
defdfs(x, y, step):if step >3or x <0or y <0or x > n-1or y > m-1:return
arr[x][y]='#'for i inrange(8):
dfs(x +dir[i][0], y +dir[i][1], step +1)if __name__ =='__main__':
n, m =map(int,input().split())
x, y =map(int,input().split())
arr =[['.'for j inrange(m)]for i inrange(n)]dir=[[-2,-1],[1,2],[-1,-2],[2,1],[2,-1],[1,-2],[-1,2],[-2,1]]
dfs(x-1,y-1,0)for i inrange(n):for j inrange(m):print(arr[i][j], end='')print()