Re: [閒聊] 每日leetcode

看板Marginalman作者 (通通打死)時間1年前 (2024/08/24 14:32), 1年前編輯推噓0(002)
留言2則, 1人參與, 1年前最新討論串761/1548 (看更多)
走心了 有點魔征 禮拜六就這樣被這題毀了 哀 前兩行請當沒看到 總之這是錯的== 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) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 125.228.146.144 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1724481164.A.31F.html

08/24 14:33, 1年前 , 1F
WA*6
08/24 14:33, 1F
※ 編輯: DJYOMIYAHINA (125.228.146.144 臺灣), 08/24/2024 14:35:23

08/24 14:37, 1年前 , 2F
我完全沒有去想到前半-1翻轉這件事 才搞成這樣
08/24 14:37, 2F
文章代碼(AID): #1coNwCCV (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1coNwCCV (Marginalman)