From 80be243ec1bdd62b3924eed4d31a253e96bea269 Mon Sep 17 00:00:00 2001 From: resorcap Date: Sun, 8 Mar 2015 11:05:41 +0800 Subject: [PATCH 1/8] Create Excel Sheet Column Number.py --- Excel Sheet Column Number.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 Excel Sheet Column Number.py diff --git a/Excel Sheet Column Number.py b/Excel Sheet Column Number.py new file mode 100644 index 0000000..c715f7c --- /dev/null +++ b/Excel Sheet Column Number.py @@ -0,0 +1,7 @@ +class Solution: + def titleToNumber(self, s): + num = 0 + for i in s: + num *= 26 + num += ord(i) - 64 + return num From 629ad80b4688f98a2429da0c79787e8990c4af16 Mon Sep 17 00:00:00 2001 From: resorcap Date: Sun, 8 Mar 2015 11:14:44 +0800 Subject: [PATCH 2/8] Use None to remove empty strings --- Reverse Words in a String.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Reverse Words in a String.py b/Reverse Words in a String.py index cf23aff..0cd492d 100644 --- a/Reverse Words in a String.py +++ b/Reverse Words in a String.py @@ -1,3 +1,3 @@ class Solution: def reverseWords(self, s): - return " ".join(filter(lambda x: x, reversed(s.split(" ")))) \ No newline at end of file + return " ".join(filter(None, reversed(s.split(" ")))) From 58c7450b90ef9fcc996cd1d6209fca3f08ad0d7b Mon Sep 17 00:00:00 2001 From: resorcap Date: Sun, 8 Mar 2015 14:14:31 +0800 Subject: [PATCH 3/8] Update Remove Nth Node From End of List.py avoid use of prev, minimize time complexity --- Remove Nth Node From End of List.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/Remove Nth Node From End of List.py b/Remove Nth Node From End of List.py index 582119d..4ca1817 100644 --- a/Remove Nth Node From End of List.py +++ b/Remove Nth Node From End of List.py @@ -1,11 +1,12 @@ class Solution: def removeNthFromEnd(self, head, n): - fast, slow, prev = head, head, None - while n > 0: - fast, n = fast.next, n - 1 - while fast != None: - fast, slow, prev = fast.next, slow.next, slow - if prev == None: - return head.next - prev.next = prev.next.next - return head \ No newline at end of file + dummy = ListNode(-1) + dummy.next = head + left, right = dummy, dummy + while n: + right, n = right.next, n-1 + while right.next: + right = right.next + left = left.next + left.next = left.next.next + return dummy.next From b3e2a56abdd72a98c107a00332bea7395157d97d Mon Sep 17 00:00:00 2001 From: resorcap Date: Sun, 8 Mar 2015 17:29:09 +0800 Subject: [PATCH 4/8] Create Largest Number.py --- Largest Number.py | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 Largest Number.py diff --git a/Largest Number.py b/Largest Number.py new file mode 100644 index 0000000..e18d155 --- /dev/null +++ b/Largest Number.py @@ -0,0 +1,5 @@ +class Solution: + def largestNumber(self, num): + num = [str(x) for x in num] + num.sort(cmp = lambda x, y: cmp(y+x, x+y)) + return ''.join(num).lstrip('0') or '0' From 6c34a4312b5c39e60e1e1f4442280ffef1289169 Mon Sep 17 00:00:00 2001 From: resorcap Date: Thu, 19 Mar 2015 16:26:23 +0800 Subject: [PATCH 5/8] Create Number of 1 Bits.py --- Number of 1 Bits.py | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 Number of 1 Bits.py diff --git a/Number of 1 Bits.py b/Number of 1 Bits.py new file mode 100644 index 0000000..b7bb3b8 --- /dev/null +++ b/Number of 1 Bits.py @@ -0,0 +1,8 @@ +class Solution: + def hammingWeight(self, n): + weight = 0 + while n != 0: + if n%2: + weight += 1 + n = n >> 1 + return weight From 3d116c9c7a6f4352f15e56d7861bc6ba3678990e Mon Sep 17 00:00:00 2001 From: resorcap Date: Sat, 21 Mar 2015 13:41:29 +0800 Subject: [PATCH 6/8] Update Number of 1 Bits.py an efficient solution use bitwise operation --- Number of 1 Bits.py | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Number of 1 Bits.py b/Number of 1 Bits.py index b7bb3b8..5da3155 100644 --- a/Number of 1 Bits.py +++ b/Number of 1 Bits.py @@ -1,8 +1,7 @@ class Solution: def hammingWeight(self, n): - weight = 0 - while n != 0: - if n%2: - weight += 1 - n = n >> 1 - return weight + count = 0 + while n: + count += 1; + n = (n-1)&n + return count From fee2b1f28b9ad6c269a48218461b6bb5cd55c25d Mon Sep 17 00:00:00 2001 From: resorcap Date: Sat, 21 Mar 2015 13:58:32 +0800 Subject: [PATCH 7/8] Update Number of 1 Bits.py Adjust Format --- Number of 1 Bits.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Number of 1 Bits.py b/Number of 1 Bits.py index 5da3155..7062b44 100644 --- a/Number of 1 Bits.py +++ b/Number of 1 Bits.py @@ -3,5 +3,5 @@ def hammingWeight(self, n): count = 0 while n: count += 1; - n = (n-1)&n + n = (n-1) & n return count From 2daa9b6109473a58cbfc04134e10639bd1e0b5b2 Mon Sep 17 00:00:00 2001 From: resorcap Date: Sat, 21 Mar 2015 14:27:40 +0800 Subject: [PATCH 8/8] Update Number of 1 Bits.py --- Number of 1 Bits.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Number of 1 Bits.py b/Number of 1 Bits.py index 7062b44..960e0bc 100644 --- a/Number of 1 Bits.py +++ b/Number of 1 Bits.py @@ -2,6 +2,6 @@ class Solution: def hammingWeight(self, n): count = 0 while n: - count += 1; - n = (n-1) & n + count += 1 + n = (n - 1) & n return count