截断8位字符打印 AC
def ysy(board):
n=int(board[0])
strlist=[]
for i in range(1,n+1):
s=board[i]
strlist+=mysplit(s)
strlist.sort()
return strlist
def mysplit(s):
slist=[]
i=0
while i
slist.append(s[i:i+8])
i+=8
a=s[i:]+'0'*(8-len(s[i:]))
slist.append(a)
return slist
if __name__=='__main__':
board=list(input().split())
res=ysy(board)
print(' '.join(res))
括号反转
字符打印 AC
def ysy(s):
def group(a):
num=''
i=0
while i
num+=a[i]
i+=1
num=int(num)
j,cnt=i+1,1
while j0:
if a[j] in '{([':
cnt+=1
elif a[j] in '})]':
cnt-=1
j+=1
return num,i,j-1
res=''
while s:
cur=s[0]
if cur.isdigit():
num,i,j=group(s)
res+=ysy(s[i+1:j])*num
s=s[j+1:]
else:
res+=cur
s=s[1:]
return res
if __name__=='__main__':
s=input()
print(ysy(s)[::-1])
海拔路径题题目
#####90.91%测试用例
def ysy(board,n,m,ax,ay,bx,by):
target=board[bx][by]
start=board[ax][ay]
mod=10**9
visit=[[0]*m for _ in range(n)]
visit[ax][ay]=1
mydict={start:[[ax,ay]]}
for tmp in range(start,target):
if tmp in mydict:
for index in mydict[tmp]:
x,y=index
for dx,dy in zip([-1,0,1,0],[0,-1,0,1]):
nx,ny=x+dx,y+dy
if 0<=nx
visit[x][y]+=visit[nx][ny]
visit[x][y]=visit[x][y]%mod
for dx,dy in zip([-1,0,1,0],[0,-1,0,1]):
nx,ny=x+dx,y+dy
if 0<=nxboard[x][y] and board[nx][ny]
if board[nx][ny] in mydict:
if [nx,ny] not in mydict[board[nx][ny]]:
mydict[board[nx][ny]].append([nx,ny])
else:
mydict[board[nx][ny]]=[[nx,ny]]
del mydict[tmp]
print(visit)
res=0
x,y=bx,by
for dx,dy in zip([-1,0,1,0],[0,-1,0,1]):
nx,ny=x+dx,y+dy
if 0<=nx
res+=visit[nx][ny]
return res%mod
####内存超出 80%
def ysy(board,n,m,ax,ay,bx,by):
target=board[bx][by]
start=board[ax][ay]
mod=10**9
visit=[[0]*m for _ in range(n)]
visit[ax][ay]=1
mydict={}
for i in range(n):
for j in range(m):
c=board[i][j]
if start < c < target:
x,y,f=i,j,False
for dx,dy in zip([-1,0,1,0],[0,-1,0,1]):
nx,ny=x+dx,y+dy
if 0<=nxboard[nx][ny]: f=True
if f:
if c not in mydict:
mydict[c]=[[i,j]]
else:
mydict[c].append([i,j])
for num in range(start+1,target):
if num in mydict:
for tmp in mydict[num]:
x,y=tmp
for dx,dy in zip([-1,0,1,0],[0,-1,0,1]):
nx,ny=x+dx,y+dy
if 0<=nx
visit[x][y]+=visit[nx][ny]
visit[x][y]=visit[x][y]%mod
res=0
x,y=bx,by
for dx,dy in zip([-1,0,1,0],[0,-1,0,1]):
nx,ny=x+dx,y+dy
if 0<=nx
res+=visit[nx][ny]
return res%mod
if __name__=='__main__':
n,m=map(int,input().split())
board=[]
for _ in range(n):
board.append(list(map(int,input().split())))
ax,ay,bx,by=map(int,input().split())
print(ysy(board,n,m,ax,ay,bx,by))