You need to check that the 2 given strings are isometric. This means that a character from one string can become a match for characters from another string.
One character from one string can correspond only to one character from another string. Two or more characters of one string can correspond to one character of another string, but not vice versa.
Input: Two arguments. Both strings.
Output: Boolean.
str1 과 str2 의 구성요소들이 서로 상응해야한다
1
2
3
4
5
6
7
8
9
10
11
12
13
|
def isometric_strings(str1: str, str2: str) -> bool:
rel = {}
temp = ""
if len(str1) != len(str2): # 길이가 다르면 false
return False
else:
for index, e in enumerate(str1): # 문자와 해당 문자의 인덱스 반환
if e in rel.keys():
temp += rel[e]
else:
rel[e] = str2[index]
temp += rel[e]
return temp == str2
|
cs |
학교 수업에서 배웠던 문자열 접합과 enumerate함수를 사용했다!
True가 되는 문자열을 만들고(temp), 그게 str2와 같다면 True를 반환하도록 만들었다
서로 상응하는 자료를 만들 때 딕셔너리는 key 자체로 바로 값을 얻을 수 있어서 정말 편한것 같다
'Algorithm > Checkio' 카테고리의 다른 글
[Checkio] Scientific Expedition. Sum by Type (0) | 2020.06.17 |
---|---|
[Checkio] Electronic station. Digits Multiplication (0) | 2020.06.09 |
[Checkio] HOME. Bigger Price (0) | 2020.06.09 |
[Checkio] HOME. Sort Array by Element Frequency (0) | 2020.06.08 |