锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲乱码日产精品a级毛片久久,亚洲欧美精品一区久久中文字幕 ,人妻精品久久久久中文字幕一冢本http://www.shnenglu.com/Uriel/articles/230261.htmlUrielUrielTue, 23 Jan 2024 10:54:00 GMThttp://www.shnenglu.com/Uriel/articles/230261.htmlhttp://www.shnenglu.com/Uriel/comments/230261.htmlhttp://www.shnenglu.com/Uriel/articles/230261.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/230261.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/230261.html鍏堣繃婊ゆ帀鑷韓鏈夐噸澶嶅瓧姣嶇殑錛岀劧鍚庤涓涓唴鍚玸et鐨勫垪琛紝姣忔鎵竴閬嶅垪琛ㄧ湅鑳藉惁鍔犲叆褰撳墠瀛楃涓詫紝鏈鍚庡彇鍒楄〃涓渶澶氬瓧姣嶇殑set


#1239
#
Runtime: 97 ms (Beats 50%)
#
Memory: 53.4 MB (Beats 8.49%)

class Solution(object):
    def maxLength(self, arr):
        """
        :type arr: List[str]
        :rtype: int
        
"""
        candidate = []
        for s in arr:
            u = set(s)
            if len(s) == len(u):
                candidate.append(u)
        ans = [set()]
        maxx = 0
        for i in candidate:
            for j in ans:
                if not i & j:
                    ans.append(i | j)
                    maxx = max(maxx, len(i | j))
        return maxx


Uriel 2024-01-23 18:54 鍙戣〃璇勮
]]>
[LeetCode]2785. Sort Vowels in a String (Medium) Python-2023.11.13http://www.shnenglu.com/Uriel/articles/230177.htmlUrielUrielMon, 13 Nov 2023 12:52:00 GMThttp://www.shnenglu.com/Uriel/articles/230177.htmlhttp://www.shnenglu.com/Uriel/comments/230177.htmlhttp://www.shnenglu.com/Uriel/articles/230177.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/230177.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/230177.html


 1 #2785
 2 #Runtime: 175 ms (Beats 90.41%)
 3 #Memory: 30 MB (Beats 6.85%)
 4 
 5 class Solution(object):
 6     def sortVowels(self, s):
 7         """
 8         :type s: str
 9         :rtype: str
10         """
11         s, vols, pos = list(s), [], []
12         vol_set = set(['a''e''i''o''u''A''E''I''O''U'])
13         for i, ch in enumerate(s):
14             if ch in vol_set:
15                 vols.append(ch)
16                 pos.append(i)
17         vols.sort()
18         for i, ch in zip(pos, vols):
19             s[i] = ch
20         return ''.join(s)


Uriel 2023-11-13 20:52 鍙戣〃璇勮
]]>
[LeetCode]557. Reverse Words in a String III (Easy) Python-2023.10.01http://www.shnenglu.com/Uriel/articles/230122.htmlUrielUrielSun, 01 Oct 2023 09:00:00 GMThttp://www.shnenglu.com/Uriel/articles/230122.htmlhttp://www.shnenglu.com/Uriel/comments/230122.htmlhttp://www.shnenglu.com/Uriel/articles/230122.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/230122.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/230122.html

 1 #557
 2 #Runtime: 14 ms (Beats 91.96%)
 3 #Memory: 14.2 MB (Beats 88.75%)
 4 
 5 class Solution(object):
 6     def reverseWords(self, s):
 7         """
 8         :type s: str
 9         :rtype: str
10         """
11         return ' '.join(s.split( )[::-1])[::-1]


Uriel 2023-10-01 17:00 鍙戣〃璇勮
]]>
[LeetCode]459. Repeated Substring Pattern (Easy) Python-2023.08.21http://www.shnenglu.com/Uriel/articles/230020.htmlUrielUrielMon, 21 Aug 2023 10:11:00 GMThttp://www.shnenglu.com/Uriel/articles/230020.htmlhttp://www.shnenglu.com/Uriel/comments/230020.htmlhttp://www.shnenglu.com/Uriel/articles/230020.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/230020.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/230020.html鍒ゆ柇涓涓瓧絎︿覆鏄笉鏄敱鏌愪釜瀛愪覆閲嶅鍑犳鏋勬垚錛屽弬鑰僁iscussion get浜嗙粷濡欒В娉?-> https://leetcode.com/problems/repeated-substring-pattern/solutions/826151/python-c-java-js-go-by-fold-and-find-w-simple-proof/


 1 #459
 2 #Runtime: 17 ms (Beats 88.78%)
 3 #Memory: 13.7 MB (Beats 55.12%)
 4 
 5 class Solution(object):
 6     def repeatedSubstringPattern(self, s):
 7         """
 8         :type s: str
 9         :rtype: bool
10         """
11         return s in (s + s)[1:-1]


Uriel 2023-08-21 18:11 鍙戣〃璇勮
]]>
[LeetCode]1456. Maximum Number of Vowels in a Substring of Given Length (Medium) Python-2023.05.05http://www.shnenglu.com/Uriel/articles/229865.htmlUrielUrielFri, 05 May 2023 07:06:00 GMThttp://www.shnenglu.com/Uriel/articles/229865.htmlhttp://www.shnenglu.com/Uriel/comments/229865.htmlhttp://www.shnenglu.com/Uriel/articles/229865.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/229865.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/229865.html

 1 #1456
 2 #Runtime: 135 ms (Beats 83.33%)
 3 #Memory: 18.1 MB (Beats 6.94%)
 4 
 5 class Solution(object):
 6     def maxVowels(self, s, k):
 7         """
 8         :type s: str
 9         :type k: int
10         :rtype: int
11         """
12         cnt = [0] * (len(s) + 1)
13         t, ans = 0, 0
14         for i, ch in enumerate(s):
15             if ch in 'aeiou':
16                 t += 1
17             cnt[i + 1] = t
18         for i in range(k, len(cnt)):
19             ans = max(ans, cnt[i] - cnt[i - k])
20         return ans


Uriel 2023-05-05 15:06 鍙戣〃璇勮
]]>
[LeetCode]839. Similar String Groups (Hard) Python-2023.04.28http://www.shnenglu.com/Uriel/articles/229851.htmlUrielUrielFri, 28 Apr 2023 16:55:00 GMThttp://www.shnenglu.com/Uriel/articles/229851.htmlhttp://www.shnenglu.com/Uriel/comments/229851.htmlhttp://www.shnenglu.com/Uriel/articles/229851.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/229851.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/229851.html榪欓鍔犱笉鍔犺礬寰勪紭鍖栭熷害宸笉澶?br />

 1 #839
 2 #Runtime: 341 ms (Beats 65.91%)
 3 #Memory: 13.9 MB (Beats 79.55%)
 4 
 5 class Solution(object):
 6     def numSimilarGroups(self, strs):
 7         """
 8         :type strs: List[str]
 9         :rtype: int
10         """
11         fa = [i for i in range(len(strs))]
12         #rank = [0] * len(strs)
13         def find(x):
14             i = x
15             while x != fa[x]:
16                 x = fa[x]
17             fa[i] = x
18             return x
19 
20         def union(a, b):
21             fa[find(a)] = find(b)
22 
23         def is_similar(x, y):
24             tp = 0
25             for i in range(len(x)):
26                 if x[i] != y[i]:
27                     tp += 1
28                     if tp > 2:
29                         return False
30             return True
31         
32         n_group = len(strs)
33         for i in range(len(strs)):
34             for j in range(i + 1, len(strs)):
35                 if find(i) != find(j) and is_similar(strs[i], strs[j]):
36                     n_group -= 1
37                     union(i, j)
38         return n_group


Uriel 2023-04-29 00:55 鍙戣〃璇勮
]]>
[LeetCode]1312. Minimum Insertion Steps to Make a String Palindrome (Hard) Python-2023.04.22http://www.shnenglu.com/Uriel/articles/229835.htmlUrielUrielSat, 22 Apr 2023 12:23:00 GMThttp://www.shnenglu.com/Uriel/articles/229835.htmlhttp://www.shnenglu.com/Uriel/comments/229835.htmlhttp://www.shnenglu.com/Uriel/articles/229835.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/229835.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/229835.html

 1 #1312
 2 #Runtime: 398 ms (Beats 94.87%)
 3 #Memory: 15 MB (Beats 94.87%)
 4 
 5 class Solution(object):
 6     def minInsertions(self, s):
 7         """
 8         :type s: str
 9         :rtype: int
10         """
11         n = len(s)
12         dp = [[0] * n for _ in range(n)]
13         for i in range(n - 1, -1, -1):
14             dp[i][i] = 1
15             for j in range(i + 1, n):
16                 if s[i] == s[j]:
17                     dp[i][j] = dp[i + 1][j - 1] + 2
18                 else:
19                     dp[i][j] = max(dp[i + 1][j], dp[i][j - 1])
20         return len(s) - dp[0][n-1]


Uriel 2023-04-22 20:23 鍙戣〃璇勮
]]>
[LeetCode]2390. Removing Stars From a String (Medium) Python-2023.04.11http://www.shnenglu.com/Uriel/articles/229815.htmlUrielUrielTue, 11 Apr 2023 09:41:00 GMThttp://www.shnenglu.com/Uriel/articles/229815.htmlhttp://www.shnenglu.com/Uriel/comments/229815.htmlhttp://www.shnenglu.com/Uriel/articles/229815.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/229815.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/229815.html

 1 #2390
 2 #Runtime: 311 ms (Beats 87.74%)
 3 #Memory: 16.5 MB (Beats 43.40%)
 4 
 5 class Solution(object):
 6     def removeStars(self, s):
 7         """
 8         :type s: str
 9         :rtype: str
10         """
11         ss = []
12         for ch in s:
13             if ch == '*':
14                 ss.pop()
15             else:
16                 ss.append(ch)
17         return ''.join(ss)


Uriel 2023-04-11 17:41 鍙戣〃璇勮
]]>
[LeetCode]28. Find the Index of the First Occurrence in a String (Medium) Python-2023.03.03http://www.shnenglu.com/Uriel/articles/229717.htmlUrielUrielSat, 04 Mar 2023 14:13:00 GMThttp://www.shnenglu.com/Uriel/articles/229717.htmlhttp://www.shnenglu.com/Uriel/comments/229717.htmlhttp://www.shnenglu.com/Uriel/articles/229717.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/229717.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/229717.html
鍐欎簡涓畝鍗曠矖鏆寸殑錛屽厛鎵懼嚭needle棣栧瓧姣嶅湪haystack鎵鏈夊嚭鐜頒綅緗紝鍐嶇湅鏄惁鍖歸厤

 1 #28
 2 #Runtime: 11 ms (Beats 95.49%)
 3 #Memory: 13.2 MB (Beats 98.73%)
 4 
 5 class Solution(object):
 6     def strStr(self, haystack, needle):
 7         """
 8         :type haystack: str
 9         :type needle: str
10         :rtype: int
11         """
12         if len(needle) == 0:
13             return 0
14         occur_lst = [i for (i, ch) in enumerate(haystack) if needle[0]]
15         for i in occur_lst:
16             if haystack[i : i + len(needle)] == needle:
17                 return i
18         return -1


Uriel 2023-03-04 22:13 鍙戣〃璇勮
]]>
[LeetCode]2306. Naming a Company (Hard) Python-2023.02.08http://www.shnenglu.com/Uriel/articles/229667.htmlUrielUrielThu, 09 Feb 2023 11:46:00 GMThttp://www.shnenglu.com/Uriel/articles/229667.htmlhttp://www.shnenglu.com/Uriel/comments/229667.htmlhttp://www.shnenglu.com/Uriel/articles/229667.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/229667.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/229667.htmlPython鐨剆et()鐢ㄦ硶錛屽弬鑰冧簡Discussion->https://leetcode.com/problems/naming-a-company/solutions/3162477/clean-codes-full-explanation-set-of-array-c-java-python3/


 1 #2306
 2 #Runtime: 513 ms (Beats 66.67%)
 3 #Memory: 33.1 MB (Beats 50%)
 4 
 5 class Solution(object):
 6     def distinctNames(self, ideas):
 7         """
 8         :type ideas: List[str]
 9         :rtype: int
10         """
11         suf = [set() for _ in range(26)]
12         for c in ideas:
13             suf[ord(c[0]) - ord('a')].add(c[1:])
14         ans = 0
15         for i in range(25):
16             for j in range(i + 1, 26):
17                 cnt = len(suf[i] & suf[j])
18                 ans += 2 * (len(suf[i]) - cnt) * (len(suf[j]) - cnt)
19         return ans


Uriel 2023-02-09 19:46 鍙戣〃璇勮
]]>
[LeetCode]438. Find All Anagrams in a String (Medium) Python-2023.02.05http://www.shnenglu.com/Uriel/articles/229661.htmlUrielUrielSun, 05 Feb 2023 12:49:00 GMThttp://www.shnenglu.com/Uriel/articles/229661.htmlhttp://www.shnenglu.com/Uriel/comments/229661.htmlhttp://www.shnenglu.com/Uriel/articles/229661.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/229661.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/229661.html緇欏嚭涓や釜瀛楃涓瞤鍜宻錛岄棶p鐨勬煇縐嶆帓鍒楁槸鍚︽槸s鐨勫瓙涓詫紝濡傛灉瀛樺湪錛岃緭鍑烘墍鏈夊尮閰嶇殑浣嶇疆銆傜被浼肩567棰橈紙http://www.shnenglu.com/Uriel/articles/229660.html錛?br />鍏堢敤Counter璁$畻p鍚勪釜瀛楃鐨勫嚭鐜版鏁幫紝鐒跺悗鐢╯liding window錛宻鍑虹幇鍦╯liding window涓殑瀛楃瀵瑰簲鐨凜ounter鍑?錛屽彂鐜版煇浣嶇疆sliding window璁〤ounter涓墍鏈夎鏁板綊闆舵椂璁板綍浣嶇疆


 1 #438
 2 #Runtime: 371 ms (Beats 12.21%)
 3 #Memory: 14.6 MB (Beats 29.63%)
 4 
 5 class Solution(object):
 6     def findAnagrams(self, s, p):
 7         """
 8         :type s: str
 9         :type p: str
10         :rtype: List[int]
11         """
12         cnt_p = Counter(p)
13         l = len(p)
14         ans = []
15         for i in range(len(s)):
16             if s[i] in cnt_p:
17                 cnt_p[s[i]] -= 1
18             if i >= l and s[i-l] in cnt_p:
19                 cnt_p[s[i-l]] += 1
20             if all([cnt_p[j] == 0 for j in cnt_p]):
21                 ans.append(i - l + 1)
22         return ans


Uriel 2023-02-05 20:49 鍙戣〃璇勮
]]>
[LeetCode]567. Permutation in String (Medium) Python-2023.02.04http://www.shnenglu.com/Uriel/articles/229660.htmlUrielUrielSat, 04 Feb 2023 09:28:00 GMThttp://www.shnenglu.com/Uriel/articles/229660.htmlhttp://www.shnenglu.com/Uriel/comments/229660.htmlhttp://www.shnenglu.com/Uriel/articles/229660.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/229660.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/229660.html

 1 #567
 2 #Runtime: 299 ms (Beats 32.65%)
 3 #Memory: 14 MB(Beats 23.38%)
 4 
 5 class Solution(object):
 6     def checkInclusion(self, s1, s2):
 7         """
 8         :type s1: str
 9         :type s2: str
10         :rtype: bool
11         """
12         cnt_s1 = Counter(s1)
13         l1 = len(s1)
14         for i in range(len(s2)):
15             if s2[i] in cnt_s1:
16                 cnt_s1[s2[i]] -= 1
17             if i >= l1 and s2[i-l1] in cnt_s1:
18                 cnt_s1[s2[i-l1]] += 1
19             if all([cnt_s1[i] == 0 for i in cnt_s1]):
20                 return True
21         return False


Uriel 2023-02-04 17:28 鍙戣〃璇勮
]]>
[LeetCode]953. Verifying an Alien Dictionary (Easy) Python-2023.02.02http://www.shnenglu.com/Uriel/articles/229658.htmlUrielUrielThu, 02 Feb 2023 13:07:00 GMThttp://www.shnenglu.com/Uriel/articles/229658.htmlhttp://www.shnenglu.com/Uriel/comments/229658.htmlhttp://www.shnenglu.com/Uriel/articles/229658.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/229658.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/229658.html鐢╠ict鏋勫緩鍘熸湰鐨?6涓瓧姣嶅拰鏂板瓧姣嶅簭鍒楃殑鏄犲皠錛屽皢鏂板簭鐨勫崟璇嶆槧灝勫洖鍘熷26涓瓧姣嶅簭錛屽啀鐩存帴瀵規瘮鐩擱偦瀛楃涓?br />

 1 #953
 2 #Runtime: 18 ms (Beats 91.10%)
 3 #Memory: 13.4 MB (Beats 76.87%)
 4 
 5 class Solution(object):
 6     def isAlienSorted(self, words, order):
 7         """
 8         :type words: List[str]
 9         :type order: str
10         :rtype: bool
11         """
12         ori_id = dict()
13         a = "abcdefghijklmnopqrstuvwxyz"
14         for i in range(26):
15             ori_id[order[i]] = a[i]
16         for i in range(len(words)):
17             trans_s = []
18             for j in words[i]:
19                 trans_s.append(ori_id[j])
20             trans_s = ''.join(trans_s)
21             if i == 0:
22                 pre = trans_s
23             else:
24                 if pre > trans_s:
25                     return False
26                 pre = trans_s
27         return True


Uriel 2023-02-02 21:07 鍙戣〃璇勮
]]>
[LeetCode]1071. Greatest Common Divisor of Strings (Easy) Python-2023.02.01http://www.shnenglu.com/Uriel/articles/229657.htmlUrielUrielWed, 01 Feb 2023 07:34:00 GMThttp://www.shnenglu.com/Uriel/articles/229657.htmlhttp://www.shnenglu.com/Uriel/comments/229657.htmlhttp://www.shnenglu.com/Uriel/articles/229657.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/229657.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/229657.html姘撮錛屼粠涓や釜瀛楃涓蹭腑杈冪煭鐨勪竴涓殑闀垮害l寮濮嬫灇涓撅紝l锝?


 1 #1071
 2 #Runtime: 21 ms (Beats 73.53%)
 3 #Memory: 13.6 MB (Beats 30.88%)
 4 
 5 class Solution(object):
 6     def gcdOfStrings(self, str1, str2):
 7         """
 8         :type str1: str
 9         :type str2: str
10         :rtype: str
11         """
12         for s_len in range(1 + min(len(str1), len(str2)), 0, -1):
13             if len(str1) % s_len != 0 or len(str2) % s_len:
14                 continue
15             ss1 = str1[0:s_len] * (len(str1) // s_len)
16             ss2 = str1[0:s_len] * (len(str2) // s_len)
17             if ss1 == str1 and ss2 == str2:
18                 return str1[0:s_len]
19         return ""


Uriel 2023-02-01 15:34 鍙戣〃璇勮
]]>
[LeetCode]472. Concatenated Words (Hard) Python-2023.01.27http://www.shnenglu.com/Uriel/articles/229649.htmlUrielUrielFri, 27 Jan 2023 09:29:00 GMThttp://www.shnenglu.com/Uriel/articles/229649.htmlhttp://www.shnenglu.com/Uriel/comments/229649.htmlhttp://www.shnenglu.com/Uriel/articles/229649.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/229649.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/229649.html
DP錛屽浜庢瘡涓涓崟璇峸錛屽紑涓涓狣P list錛宭ist闀垮害涓簑鐨勯暱搴?1錛宒p[0]=1錛屼箣鍚庤嫢鐩村埌w鐨勭i浣嶅彲浠ョ敤鍗曡瘝琛ㄤ腑鐨勫叾浠栧崟璇嶇粍鎴愶紝鍒檇p[i]=1錛岃嫢dp[len(w)]=1錛屽垯杈撳嚭璇ュ崟璇?br />鍏堝皢list杞負set錛屽姞閫熷悗緇煡鎵懼崟璇嶇殑閫熷害

澶嶆潅搴(n*L*L)錛岃繍琛屾晥鐜囧ソ鍍忎竴鑸?br />

 1 #472
 2 #Runtime: 1236 ms (Beats 20%)
 3 #Memory: 16.6 MB (Beats 88.57%)
 4 
 5 class Solution(object):
 6     def findAllConcatenatedWordsInADict(self, words):
 7         """
 8         :type words: List[str]
 9         :rtype: List[str]
10         """
11         word_dict = set(words)
12         ans = []
13         for w in words:
14             dp = [0] * (len(w) + 1)
15             dp[0] = 1
16             for i in range(len(w)):
17                 if not dp[i]:
18                     continue
19                 for j in range(i + 1, len(w) + 1):
20                     if j - i < len(w) and w[i:j] in word_dict:
21                         dp[j] = 1
22                 if dp[len(w)]:
23                     ans.append(w)
24                     break
25         return ans


Uriel 2023-01-27 17:29 鍙戣〃璇勮
]]>
[LeetCode]222. Count Complete Tree Nodes (Medium) Python-2022.11.15http://www.shnenglu.com/Uriel/articles/229519.htmlUrielUrielTue, 15 Nov 2022 10:58:00 GMThttp://www.shnenglu.com/Uriel/articles/229519.htmlhttp://www.shnenglu.com/Uriel/comments/229519.htmlhttp://www.shnenglu.com/Uriel/articles/229519.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/229519.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/229519.html
鏂規硶涓錛氬厛DFS錛屼笉鏂蛋宸﹀瓙鏍戠殑璺緞錛岀畻鍑轟簩鍙夋爲灞傛暟max_depth錛岄偅涔堟渶鍚庝竴灞傝妭鐐圭殑鏁伴噺涓篬1, 2^(max_depth-1)]錛岀洿鎺ヤ簩鍒嗚繖涓寖鍥達紝鐒跺悗綆楀嚭鏈鍚庝竴涓彾瀛愮粨鐐硅惤鍦ㄥ摢閲岋紝鐞嗚澶嶆潅搴(logn)*O(logn)

 1 #222
 2 #Runtime: 156 ms
 3 #Memory Usage: 29.2 MB
 4 
 5 # Definition for a binary tree node.
 6 # class TreeNode(object):
 7 #     def __init__(self, val=0, left=None, right=None):
 8 #         self.val = val
 9 #         self.left = left
10 #         self.right = right
11 class Solution(object):
12     def binarySearch(self, root, depth, mid, l, r):
13         if depth == self.max_depth - 1: 
14             if root:
15                 return True
16             return False
17         if mid <= (l + r)//2:
18             return self.binarySearch(root.left, depth + 1, mid, l, (l + r)//2)
19         else:
20             return self.binarySearch(root.right, depth + 1, mid, (l + r)//2, r) 
21             
22     def countNodes(self, root):
23         """
24         :type root: TreeNode
25         :rtype: int
26         """
27         self.max_depth = 0
28         rt = root
29         while rt:
30             rt = rt.left
31             self.max_depth = self.max_depth + 1
32         if not self.max_depth:
33             return 0
34         l = 1
35         r = 2**(self.max_depth - 1)
36         while l < r:
37             mid = (l + r) // 2 + (l + r) % 2
38             if self.binarySearch(root, 0, mid, 1, 2**(self.max_depth - 1)):
39                 l = mid
40             else:
41                 r = mid - 1
42         return l + 2**(self.max_depth - 1) - 1

鏂規硶浜岋細鐩存帴涓嶆柇浜屽垎鍦伴掑綊鎵懼乏鍙沖瓙鏍戯紝鐩村埌閬囧埌鏌愪釜婊′簩鍙夋爲鑺傜偣錛岀劧鍚巗um(宸﹀瓙鏍戠殑鎼滅儲緇撴灉)+sum(鍙沖瓙鏍戠殑鎼滅儲緇撴灉)+1錛堟牴緇撶偣錛夛紝鐞嗚澶嶆潅搴(logn)*O(logn)

 1 #222
 2 #Runtime: 137 ms
 3 #Memory Usage: 29.2 MB
 4 
 5 # Definition for a binary tree node.
 6 # class TreeNode(object):
 7 #     def __init__(self, val=0, left=None, right=None):
 8 #         self.val = val
 9 #         self.left = left
10 #         self.right = right
11 class Solution(object):
12     def DFS(self, root, fg):
13         if not root:
14             return 1
15         if fg == 0:
16             return self.DFS(root.left, 0) + 1
17         return self.DFS(root.right, 1) + 1
18             
19     def countNodes(self, root):
20         """
21         :type root: TreeNode
22         :rtype: int
23         """
24         if not root:
25             return 0
26         depth_l = self.DFS(root.left, 0)
27         depth_r = self.DFS(root.right, 1)
28         if depth_l == depth_r:
29             return 2**depth_l - 1
30         return self.countNodes(root.left) + self.countNodes(root.right) + 1

鏂規硶涓夛細鐩存帴DFS鏁存5鏍戞眰鑺傜偣鏁伴噺錛屽鏉傚害O(n)錛屾病鎯沖埌榪欎釜鏂規硶鍙嶈屾渶蹇?..

 1 #222
 2 #Runtime: 87 ms
 3 #Memory Usage: 29.4 MB
 4 
 5 # Definition for a binary tree node.
 6 # class TreeNode(object):
 7 #     def __init__(self, val=0, left=None, right=None):
 8 #         self.val = val
 9 #         self.left = left
10 #         self.right = right
11 class Solution(object):
12     def DFS(self, root):
13         if not root:
14             return
15         self.ans += 1
16         self.DFS(root.left)
17         self.DFS(root.right)
18             
19     def countNodes(self, root):
20         """
21         :type root: TreeNode
22         :rtype: int
23         """
24         self.ans = 0
25         self.DFS(root)
26         return self.ans


Uriel 2022-11-15 18:58 鍙戣〃璇勮
]]>
[LeetCode]151. Reverse Words in a String (Medium) Python-2022.11.13http://www.shnenglu.com/Uriel/articles/229508.htmlUrielUrielSun, 13 Nov 2022 10:56:00 GMThttp://www.shnenglu.com/Uriel/articles/229508.htmlhttp://www.shnenglu.com/Uriel/comments/229508.htmlhttp://www.shnenglu.com/Uriel/articles/229508.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/229508.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/229508.html
Input: s = "a good   example"
Output: "example good a"

鏂規硶涓錛氱敤Python鑷甫鐨勫瓧絎︿覆split()錛屽緢鏂逛究

 1 #151
 2 #Runtime: 34 ms
 3 #Memory Usage: 13.7 MB
 4 
 5 class Solution(object):
 6     def reverseWords(self, s):
 7         """
 8         :type s: str
 9         :rtype: str
10         """
11 
12         return ' '.join(s.split()[::-1])

鏂規硶浜岋細鎵嬪伐鍒囧壊瀛楃涓?br />
 1 #151
 2 #Runtime: 49 ms
 3 #Memory Usage: 13.6 MB
 4 
 5 class Solution(object):
 6     def reverseWords(self, s):
 7         """
 8         :type s: str
 9         :rtype: str
10         """
11         ans = []
12         tp = ""
13         for i in s:
14             if i == ' ':
15                 if len(tp) > 0:
16                     ans.append(tp)
17                     tp = ""
18             else:
19                 tp += i
20         if len(tp) > 0:
21             ans.append(tp)
22             tp = " "
23         return ' '.join(ans[i] for i in range(len(ans) - 1, -1, -1))


Uriel 2022-11-13 18:56 鍙戣〃璇勮
]]>
[LeetCode]899. Orderly Queue (Hard) Python-2022.11.06http://www.shnenglu.com/Uriel/articles/229484.htmlUrielUrielSun, 06 Nov 2022 09:05:00 GMThttp://www.shnenglu.com/Uriel/articles/229484.htmlhttp://www.shnenglu.com/Uriel/comments/229484.htmlhttp://www.shnenglu.com/Uriel/articles/229484.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/229484.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/229484.html
鑻=1錛孫(n^2)錛屾ā鎷熸瘡嬈℃尓涓浣嶅幓鏈熬鐒跺悗姹傛渶灝忓彲鑳?br />鑻>2錛屽垯鐞嗚涓婂彲浠ュ疄鐜頒換鎰忎氦鎹㈠厓绱犱綅緗紝閭e彧瑕佹妸string杞負list鐩存帴sort杈撳嚭

 1 #899
 2 #Runtime: 38 ms
 3 #Memory Usage: 13.4 MB
 4 
 5 class Solution(object):
 6     def orderlyQueue(self, s, k):
 7         """
 8         :type s: str
 9         :type k: int
10         :rtype: str
11         """
12         if k == 1:
13             t = s
14             for i in range(1, len(s)):
15                 if t > s[i : ] + s[0 : i]:
16                     t = s[i : ] + s[0 : i]
17         else:
18             t = ''.join(sorted(list(s)))
19         return t


Uriel 2022-11-06 17:05 鍙戣〃璇勮
]]>
[LeetCode]12. Integer to Roman (Medium) Python-2022.11.02http://www.shnenglu.com/Uriel/articles/229475.htmlUrielUrielWed, 02 Nov 2022 17:46:00 GMThttp://www.shnenglu.com/Uriel/articles/229475.htmlhttp://www.shnenglu.com/Uriel/comments/229475.htmlhttp://www.shnenglu.com/Uriel/articles/229475.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/229475.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/229475.html闃挎媺浼暟瀛楄漿緗楅┈瀛楃錛岀畝鍗曞瓧絎︿覆澶勭悊錛岀敤浜唒ython鐨刣ict
 1 #12
 2 #Runtime: 59 ms
 3 #Memory Usage: 13.2 MB
 4 
 5 class Solution(object):
 6     def intToRoman(self, num):
 7         """
 8         :type num: int
 9         :rtype: str
10         """
11         dict = {1 : 'I'5 : 'V'10 : 'X'50 : 'L'100 : 'C'500 : 'D'1000 : 'M'}
12         nt = 1
13         ans = []
14         while num > 0:
15             tp = num % 10
16             if tp == 4:
17                 ans.append(dict[nt] + dict[5*nt])
18             elif tp == 9:
19                 ans.append(dict[nt] + dict[10*nt])
20             elif tp < 4 and tp > 0:
21                 ans.append(dict[nt] * tp)
22             elif tp >= 5:
23                 ans.append(dict[5*nt] + dict[nt] * (tp - 5))
24             num = num // 10
25             nt = nt * 10
26         ans.reverse()
27         return ''.join(ans)


Uriel 2022-11-03 01:46 鍙戣〃璇勮
]]>
POJ 3450 Corporate Identity---KMP or strstr or Suffix Arrayhttp://www.shnenglu.com/Uriel/articles/146117.htmlUrielUrielTue, 10 May 2011 07:24:00 GMThttp://www.shnenglu.com/Uriel/articles/146117.htmlhttp://www.shnenglu.com/Uriel/comments/146117.htmlhttp://www.shnenglu.com/Uriel/articles/146117.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/146117.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/146117.html闃呰鍏ㄦ枃

Uriel 2011-05-10 15:24 鍙戣〃璇勮
]]>
POJ 1625 Censored!---AC 鑷姩鏈?DP+楂樼簿搴?/title><link>http://www.shnenglu.com/Uriel/articles/131874.html</link><dc:creator>Uriel</dc:creator><author>Uriel</author><pubDate>Sat, 30 Oct 2010 15:40:00 GMT</pubDate><guid>http://www.shnenglu.com/Uriel/articles/131874.html</guid><wfw:comment>http://www.shnenglu.com/Uriel/comments/131874.html</wfw:comment><comments>http://www.shnenglu.com/Uriel/articles/131874.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/Uriel/comments/commentRss/131874.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/Uriel/services/trackbacks/131874.html</trackback:ping><description><![CDATA[     鎽樿:         絎簩閬揂C鑷姩鏈猴紝瀵笵P鐘舵佽漿縐繪湁涓鐐規劅瑙変簡銆傘傘?nbsp;       榪欓鍩烘湰鍜?778涓鏍鳳紝涓嶈繃瑕侀珮綺懼害錛屾墍浠ュ氨鎯崇敤JAVA璇曡瘯錛屾濂絁AVA寰堜箙涓嶇浜嗭紝璺熸病瀛﹁繃涓鏍鳳紝Regional涔嬪墠緇冧範緇冧範錛岀粨鏋滃仛寰楁垜鐥涗笉嬈茬敓銆傘?0錛?0-03錛?0錛?...  <a href='http://www.shnenglu.com/Uriel/articles/131874.html'>闃呰鍏ㄦ枃</a><img src ="http://www.shnenglu.com/Uriel/aggbug/131874.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/Uriel/" target="_blank">Uriel</a> 2010-10-30 23:40 <a href="http://www.shnenglu.com/Uriel/articles/131874.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>2010 Hangzhou Regional On-Site J Infinite monkey theorem---KMP+DPhttp://www.shnenglu.com/Uriel/articles/131795.htmlUrielUrielFri, 29 Oct 2010 15:17:00 GMThttp://www.shnenglu.com/Uriel/articles/131795.htmlhttp://www.shnenglu.com/Uriel/comments/131795.htmlhttp://www.shnenglu.com/Uriel/articles/131795.html#Feedback2http://www.shnenglu.com/Uriel/comments/commentRss/131795.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/131795.html            鐜板満璧涜尗鑼鐨勯槦浼嶈繃浜嗚繖棰橈紝鍙互鎴戜滑瀛︽牎涓ら槦閮芥病榪囥傘? =
            鍦℉DOJ涓婄粍闃熷仛鏉窞璧涚殑棰樼殑鏃跺欑籂緇撲簡鍗婂ぉ涔熸病榪囥傘傝禌鍚庡惉璇存濊礬灝辨槸KMP錛孌P錛屾垜鐘舵佽漿縐誨鐞嗘湁闂銆傘?br>            浠婂ぉ鍙堟悶浜嗕竴鏅氫笂錛岃鏁橺iroy澶х墰涔嬪悗鍙戠幇閿欒鍘熷洜鍦╯鐘舵佷笉鐢ㄥ鐞?br>鎬濊礬錛歞p杞Щ鏂圭▼寰堝ソ鎯籌紝dp[i][j]琛ㄧず宸茬粡鎸変簡i嬈★紝褰撳墠鐘舵佹槸j(S鐨勭j涓瓧姣?錛屾鐜囨槸澶氬皯
            鍏蜂綋瀹炵幇榪囩▼瑙佷唬鐮佸強娉ㄩ噴
           
//Problem: HDOJ 3689
//Source: 2010 Hangzhou Regional On-Site J Infinite monkey theorem
//Solution: KMP+DP(like DFA)
//Status: Accepted
//Running Time: 15Ms
//Author: Uriel
//2010.10.29

#include
<stdio.h>
#include
<string.h>
double dp[1050][20],dd[20];
char st[30],ch[30];
double p[30];
int nxt[30],s;

void GetNext(char* str){
    nxt[
0]=-1;
    
int i=0,j=-1;
    
while(str[i]){
        
if(j==-1 || str[i]==str[j]){
            i
++; j++; nxt[i]=j;
        }

        
else j=nxt[j];
    }

}


int main(){
    
int n,m;
    
int i,j,k;
    
while(scanf("%d %d",&n,&m),n|m){
        
for(i=0;i<n;i++){
            scanf(
"%s",st);
            ch[i]
=st[0];
            scanf(
"%lf",&p[i]);
        }

        scanf(
"%s",st);
        
for(i=0;i<=m;++i){
            
for(j=0;j<=s;++j)dp[i][j]=0.0;
        }

        s
=strlen(st);
        GetNext(st);
        dp[
0][0]=1.0;
        
for(i=1;i<=m;i++)//鍏辨寜m嬈?/span>
            for(j=0;j<s;j++)//鏋氫婦褰撳墠鐘舵?涓嶇敤鑰冭檻j=s,鍥犱負榪欐椂宸茬粡婊¤凍瑕佹眰,涓嶇敤綆椾笅鍘?!
                for(k=0;k<n;++k)//鏋氫婦褰撳墠榪欐鎸夊摢涓敭
                    if(!j)//濡傛灉褰撳墠鐘舵佹槸榪樻病鏈夋寜鍑烘紜覆鐨勫墠緙
                        if(ch[k]==st[0])dp[i][1]+=dp[i-1][0]*p[k]; //濡傛灉榪欐鎸夌殑鏄窛鐨勭涓涓瓧姣?鐘舵佷粠0鍙樹負1
                        else //鍚﹀垯0鐘舵佺殑姒傜巼绱姞
                            dp[i][0]+=dp[i-1][0]*p[k];
                    }

                    
else if(ch[k]==st[j])//濡傛灉褰撳墠鎸夊浜嗚涓插綋鍓嶇姸鎬佺殑鍚庝竴涓瓧姣?/span>
                        dp[i][j+1]+=dp[i-1][j]*p[k]; //鐘舵?1
                    }

                    
else{
                        
int tp=j;
                        
while(tp>-1 && ch[k]!=st[tp])tp=nxt[tp]; //鍒╃敤KMP鐨凬ext鍑芥暟褰撳墠鐘舵佽綆楁寜涓媖涔嬪悗鐨勭姸鎬?鑳藉尮閰嶇殑鍓嶇紑闀垮害)
                        if(tp==-1)dp[i][0]+=dp[i-1][j]*p[k]; //濡傛灉褰撳墠鍖歸厤澶辮觸,鐘舵佸彉涓?錛屼笖绱姞鐘舵?鐨勬鐜?/span>
                        else //鍚﹀垯鐘舵佷負tp+1,鐘舵乼p+1鐨勬鐜囩瘡鍔?/span>
                            dp[i][tp+1]+=dp[i-1][j]*p[k];
                    }

                }

            }

        }

        
double ans=0.0;
        
for(i=1;i<=m;++i)ans+=dp[i][s];//鎵鏈夐暱搴﹁兘寰楀埌鐘舵乻鐨勬鐜囦箣鍜屽嵆涓烘墍姹?/span>
        printf("%.2f%%\n",100*ans);
    }

    
return 0;
}

        榪欎箞澶ф按鐨勯鎼炰簡榪欎箞涔呫傘傝屼笖瀛楃涓插張鏄垜鐨勪換鍔°傘傛澂鍏楓傘?br>        涓嬪懆涓夊幓鎴愰兘錛?9h45min錛岀涓嬈″潗榪欎箞闀挎椂闂寸伀杞︺傘?br>        紲堢シDSW Chengdu Regional 濂借繍銆傘俁egional鏄姝ょ殑瀹濊吹銆傘備笉鐭ラ亾浠ュ悗榪樻湁娌℃湁鏈轟細銆傘?

Uriel 2010-10-29 23:17 鍙戣〃璇勮
]]>
POJ 3080 Blue Jeans---KMPhttp://www.shnenglu.com/Uriel/articles/98530.htmlUrielUrielTue, 13 Oct 2009 14:46:00 GMThttp://www.shnenglu.com/Uriel/articles/98530.htmlhttp://www.shnenglu.com/Uriel/comments/98530.htmlhttp://www.shnenglu.com/Uriel/articles/98530.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/98530.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/98530.html闃呰鍏ㄦ枃

Uriel 2009-10-13 22:46 鍙戣〃璇勮
]]>
POJ 3461 Oulipo---KMPhttp://www.shnenglu.com/Uriel/articles/94720.htmlUrielUrielFri, 28 Aug 2009 21:06:00 GMThttp://www.shnenglu.com/Uriel/articles/94720.htmlhttp://www.shnenglu.com/Uriel/comments/94720.htmlhttp://www.shnenglu.com/Uriel/articles/94720.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/94720.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/94720.html
/*Problem: 3461  User: Uriel 
  Memory: 1232K  Time: 125MS 
  Language: C  Result: Accepted
*/
 

#include 
<stdio.h>
#include 
<stdlib.h>
#include 
<string.h>

int kmpMatch(char* Src, char* Pattern);
int GetNextdest(char* Pattern, int next[]);
int Next[10001];

int main()
{    
    
char source[1000001];
    
char dest[10001];
    
int i,n;
    scanf(
"%d",&n);
    
for(i=0;i<n;i++)
    
{
        memset(dest,
0x00,sizeof(dest));
        memset(source,
0x00,sizeof(source));
        scanf(
"%s",dest);    
        scanf(
"%s",source);    
        GetNextdest(dest,Next);
        printf(
"%d\n",kmpMatch(source, dest));
    }
    
    
return 0;
}


int kmpMatch(char* Src, char* Pattern)
{
    
int i=0,j=0;
    
int s_len,p_len;
    
int sum=0
    s_len
=strlen(Src);
    p_len
=strlen(Pattern);

flag: 
while(i<s_len && j<p_len)
{
    
if(j==-1||Src[i]==Pattern[j])
    
{
        
++i;   
        
++j;
    }

    
else
    
{
        j
=Next[j];      
    }

}

if (j==p_len && i<s_len){sum++;j=Next[j];goto flag;}
else if(j==p_len && i==s_len){sum++;return sum;}
else
    
return sum;
}


int GetNextdest(char* Pattern, int next[])
{
    
int i=1,j=0;
    
int p_len=strlen(Pattern);

    next[
0]=-1;
    
while(i<p_len)
    
{
        
if(Pattern[i]==Pattern[j]||j==-1)
        
{
            
++i;++j;
            
if(Pattern[i]!=Pattern[j])next[i]=j;
            
else
                next[i]
= next[j];
        }

        
else
            j
=next[j];
    }

    
return 0;
}



Uriel 2009-08-29 05:06 鍙戣〃璇勮
]]>
POJ 2406 Power Strings---KMPhttp://www.shnenglu.com/Uriel/articles/94719.htmlUrielUrielFri, 28 Aug 2009 21:00:00 GMThttp://www.shnenglu.com/Uriel/articles/94719.htmlhttp://www.shnenglu.com/Uriel/comments/94719.htmlhttp://www.shnenglu.com/Uriel/articles/94719.html#Feedback0http://www.shnenglu.com/Uriel/comments/commentRss/94719.htmlhttp://www.shnenglu.com/Uriel/services/trackbacks/94719.htmlKMP鍙樺艦銆傘傚幓涓滃崕鍓嶄竴澶╁仛鍑烘潵鏃跺緢楂樺叴鍟娿傘傚彲鎯滈偅澶╃湅鐨勫彟涓ら亾瀛楃涓查兘娌″嚭銆?br>
/*Problem: 2406  User: Uriel 
 Memory: 5100K  Time: 141MS 
 Language: C  Result: Accepted
*/


#include 
<stdio.h>
#include 
<stdlib.h>
#include 
<string.h>


int GetNextVal(char* Pattern, long next[]);
long Next[1000001];

char dest[1000001]; 
    
int main()
{
  
long n,key;
  
while(scanf("%s",dest)!=EOF)
  
{
    
if(dest[0]=='.')exit(0);
    n
=strlen(dest);
    GetNextVal(dest,Next);
    key
=n/(n-Next[n-1]);
    
if(n%(n-Next[n-1])==0)printf("%d\n",key);
    
else
        printf(
"1\n");
    memset(dest,
0x00,sizeof(dest));
  }

    
return 0;
}


int GetNextVal(char* Pattern, long next[])
{
   
long i=1,j=0;
   
long p_len=strlen(Pattern);

   next[
0]=0;
   
while(i<p_len)
   
{
      
if(Pattern[i]==Pattern[j])
      
{
         next[i]
=j+1;
         i
++;
         j
++;
      }

      
else if(j>0)
      
{
          j
=next[j-1];
      }

      
else
      
{
          next[i]
=0;
          i
++;
      }

  }

  
return 0;
}




Uriel 2009-08-29 05:00 鍙戣〃璇勮
]]>
久久精品国产亚洲7777| 伊人久久精品影院| 国产日韩欧美久久| 久久久一本精品99久久精品88| 三级片免费观看久久| 久久成人国产精品一区二区| 91久久婷婷国产综合精品青草| 99久久99久久精品国产片果冻| 婷婷久久综合九色综合九七| 欧洲性大片xxxxx久久久| 久久本道综合久久伊人| 国产精品美女久久久久av爽| 91精品婷婷国产综合久久| 香蕉久久一区二区不卡无毒影院 | 日韩一区二区三区视频久久| 亚洲国产天堂久久综合网站| 大伊人青草狠狠久久| 久久er热视频在这里精品| 久久99精品国产麻豆宅宅| 精品一区二区久久| 观看 国产综合久久久久鬼色 欧美 亚洲 一区二区 | 久久久久亚洲AV无码专区桃色| 国内精品久久久久久久coent| 久久精品国产99久久香蕉| 日本精品久久久久影院日本 | 久久久久久久91精品免费观看| 热99RE久久精品这里都是精品免费| 久久精品视频一| 久久超乳爆乳中文字幕| 国产精品成人99久久久久| 久久五月精品中文字幕| 97精品国产97久久久久久免费| 久久精品人成免费| 久久久精品视频免费观看 | 人妻少妇久久中文字幕一区二区| 99久久国产热无码精品免费| 久久国产成人| 欧美牲交A欧牲交aⅴ久久| 国产精品免费久久久久电影网| 久久久亚洲欧洲日产国码是AV| 国产精品久久久久久久久久免费|