Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c2d03ef

Browse files
Solved leetcode 1002 and 771
1 parent c52d65a commit c2d03ef

File tree

2 files changed

+67
-0
lines changed

2 files changed

+67
-0
lines changed

‎1002-Find Common Characters.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Link to problem: https://leetcode.com/problems/find-common-characters/
2+
3+
def commonChars(A):
4+
length = len(A)
5+
6+
# Edge case: Only one string given; return all characters in it
7+
if length == 1:
8+
return list(A[0])
9+
10+
# Dictionary to hold characters common amongst all strings
11+
common_chars = {}
12+
13+
# Populate common_chars with the character count of the first word
14+
for char in A[0]:
15+
if char in common_chars:
16+
common_chars[char] += 1
17+
else:
18+
common_chars[char] = 1
19+
20+
for i in range(1, length):
21+
curr_word = A[i]
22+
23+
# Shallow copy of the current common characters so far
24+
# We will update the contents of this dictionary
25+
curr_chars = common_chars.copy()
26+
27+
# Only update for characters already in curr_chars
28+
# We only care about the common characters, so don't
29+
# create new entries for newly encountered chars
30+
for char in curr_word:
31+
if char in curr_chars:
32+
curr_chars[char] -= 1
33+
34+
for key, val in curr_chars.items():
35+
old_com = common_chars[key]
36+
37+
# Exact same number of instances as common_chars, or more.
38+
# Keep the original common_chars entry
39+
if val <= 0:
40+
continue
41+
# No instances of the common char in this word; remove from
42+
# the common_char dictionary
43+
elif val == old_com:
44+
del common_chars[key]
45+
# Some non-zero number of instances of the char, but less than
46+
# the common_chars
47+
else:
48+
common_chars[key] = old_com - curr_chars[key]
49+
50+
# Parse the common_chars dict into proper final format
51+
ans = []
52+
53+
for key, val in common_chars.items():
54+
for _ in range(val):
55+
ans.append(key)
56+
57+
return ans

‎771-Jewels and Stones.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Link to problem: https://leetcode.com/problems/jewels-and-stones/
2+
3+
def numJewelsInStones(self, J: str, S: str) -> int:
4+
num_jewels = 0
5+
6+
for char in S:
7+
if char in J:
8+
num_jewels += 1
9+
10+
return num_jewels

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /