PythonCodeFight-Day5

Day_5

Q10. commonCharacterCount

Given two strings, find the number of common characters between them.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def commonCharacterCount(s1, s2):
s3 = list(s1)
s4 = list(s2)

save = list()

if len(s3) >= len(s4):
for i in range(len(s4)):
Character = s4[i]
try:
Idx = s3.index(Character)
except:
pass
else:
save.append(s3.pop(Idx))
else:
for i in range(len(s3)):
Character = s3[i]
try:
Idx = s4.index(Character)
except:
pass
else:
save.append(s4.pop(Idx))

return len(save)

작성 흐름

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# def commonCharacterCount(s1, s2):

# 테스트를 위한 문자열
s1 = "aabcc"
s2 = "adcaa"

# 뒤에서 인덱스 찾고 pop 할 때 str형은 pop을 할 수 없어서 list 처리를 해주는 부분
s3 = list(s1)
s4 = list(s2)

save = list()

# 알고리즘
# 두 입력 중 길이가 짧은 녀석을 먼저 찾는다.
# 짧은 녀석의 길이로 반복을 한다
# 짧은 녀석의 첫 값을 확인한다.
# 긴 녀석에서 해당 값을 찾아서 pop 하고, 이를 다른 리스트에 저장한다.
if len(s1) >= len(s2):
for i in range(len(s2)):
Character = s2[i]
try:
Idx = s3.index(Character)
except:
pass
else:
save.append(s3.pop(Idx))
else:
for i in range(len(s1)):
Character = s1[i]
try:
Idx = s4.index(Character)
except:
pass
else:
save.append(s4.pop(Idx))

print(len(save))