Re: [閒聊] 每日LeetCode

看板Marginalman作者 (アユニ.D)時間1年前 (2023/01/02 14:00), 編輯推噓1(107)
留言8則, 2人參與, 1年前最新討論串173/719 (看更多)
※ 引述《Rushia (みけねこ的鼻屎)》之銘言: : 520. Detect Capital : 給你一個字串,判斷他是否符合下列情況: : (1)全部字母都大寫 : (2)全部字母都小寫 : (3)首字大寫其他字母小寫 : 若符合就返回true,否則返回false,測資只會輸入大寫和小寫字母。 思考: 因為這題不會有空格,所以只需要考慮一個字的情況。 按照題目所說,大寫字母只會有 0 個、1 個或全部都是。 所以我就從數數著手了。 程式碼: class Solution: def detectCapitalUse(self, word: str) -> bool: return len((l := [(i, ch) for i, ch in enumerate(word) \ if ch.isupper()])) in [0, 1, len(word)] \ and (l[0][0] == 0 if l else True) (為了閱讀方便才換行的) 附註: 因為在一個大寫字母的情況下要考慮到它是不是在字首, 所以我用 enumerate 去遍歷而不是直接對 word 本身做, 這樣我就可以在後面去看大寫字元的 index。 後面的三元運算子是要確保有 l 這個 list 存在, 因為沒有大寫字母的話會是空的,這時候我們就用 True 代替。 -- 僕の妹がこんなに可愛いわけがない担当のアユニ‧D です https://i.imgur.com/Zvo15mG.jpg
https://twitter.com/AYUNiD_BiSH https://instagram.com/ayunid_official -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.102.230.129 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1672639203.A.725.html

01/02 14:22, 1年前 , 1F
大師
01/02 14:22, 1F

01/02 14:24, 1年前 , 2F
return word[1:] == word[1:].lower() or word.isupper()
01/02 14:24, 2F

01/02 14:24, 1年前 , 3F
討論區看到的 這也好強==
01/02 14:24, 3F

01/02 16:26, 1年前 , 4F
我有看到一個是
01/02 16:26, 4F

01/02 16:26, 1年前 , 5F
return word == word.capitalize()
01/02 16:26, 5F

01/02 16:26, 1年前 , 6F
or word == word.upper()
01/02 16:26, 6F

01/02 16:26, 1年前 , 7F
or word.lower()
01/02 16:26, 7F

01/02 16:26, 1年前 , 8F
的,這個真的很厲害
01/02 16:26, 8F
文章代碼(AID): #1ZidBZSb (Marginalman)
討論串 (同標題文章)
文章代碼(AID): #1ZidBZSb (Marginalman)