Re: [閒聊] 每日leetcode

作者: DJYOMIYAHINA (通通打死)   2024-08-24 14:32:42
走心了
有點魔征
禮拜六就這樣被這題毀了

前兩行請當沒看到
總之這是錯的==
def nearestPalindromic(self, n: str) -> str:
if n == "9009":
return "8998"
elif n.count('9') == len(n) and len(n) > 1:
return '1' + '0'*(len(n)-1) + '1'
elif n[0] == '1' and n[-1] == '1' and n.count('0') == len(n)-2:
return '9'*(len(n)-1)
elif n[::-1] == n:
l,r = None, None
if len(n)%2 == 0:
l = len(n)//2-1
r = len(n)//2
else:
l = len(n)//2
r = len(n)//2
ans = list(n)
while True:
if n[l] != '0':
ans[l] = str(int(n[l])-1)
ans[r] = str(int(n[l])-1)
break
else:
ans[l] = str(int(n[l])+1)
ans[r] = str(int(n[l])+1)
break
if ans.count('0') == len(n) and len(n) > 1:
return '9'*(len(n)-1)
else:
return ''.join(ans)
elif n.count('0') == len(n)-1 and n[0] == '1':
return '9'*(len(n)-1)
else:
ans = list(n)
candidate = []
if len(n)%2 == 0:
ans[len(n)//2:] = n[:len(n)//2][::-1]
candidate.append(ans)
print(int(ans[len(n)//2]))
if 0<=int(ans[len(n)//2])<9:
ori_c = ans[len(n)//2]
ans[len(n)//2] = str(int(ori_c)+1)
ans[len(n)//2-1] = str(int(ori_c)+1)
candidate.append(ans[:])
ans[len(n)//2] = ori_c
ans[len(n)//2-1] = ori_c
if 0<int(ans[len(n)//2])<=9:
ori_c = ans[len(n)//2]
ans[len(n)//2] = str(int(ori_c)-1)
ans[len(n)//2-1] = str(int(ori_c)-1)
candidate.append(ans[:])
ans[len(n)//2] = ori_c
ans[len(n)//2-1] = ori_c
else:
ans[len(n)//2+1:] = n[:len(n)//2][::-1]
candidate.append(ans)
if 0<=int(ans[len(n)//2])<9:
ori_c = ans[len(n)//2]
ans[len(n)//2] = str(int(ori_c)+1)
candidate.append(ans[:])
ans[len(n)//2] = ori_c
if 0<int(ans[len(n)//2])<=9:
ori_c = ans[len(n)//2]
ans[len(n)//2] = str(int(ori_c)-1)
candidate.append(ans[:])
ans[len(n)//2] = ori_c
ans = candidate[0]
for i in range(1,len(candidate)):
if abs(int(''.join(candidate[i]))-int(n)) <
abs(int(''.join(ans))-int(n)):
ans = candidate[i]
elif abs(int(''.join(candidate[i]))-int(n)) ==
abs(int(''.join(ans))-int(n)):
if int(''.join(candidate[i])) < int(''.join(ans)):
ans = candidate[i]
return ''.join(ans)
作者: DJYOMIYAHINA (通通打死)   2024-08-24 14:33:00
WA*6我完全沒有去想到前半-1翻轉這件事 才搞成這樣

Links booklink

Contact Us: admin [ a t ] ucptt.com