Find a string
def count_substring(string, sub_string):
cross = 0
for i in range(len(string) - len(sub_string)+1):
if string[i : i+len(sub_string)] == sub_string:
cross += 1
return cross
if __name__ == '__main__':
string = input().strip()
sub_string = input().strip()
count = count_substring(string, sub_string)
print(count)
해설
포맷팅 함수를 사용하여 '성'과 '이름'을 출력하는 코드이다.
len
# len함수는 문자열의 길이를 구하는 함수이다.
>>> string = "ABCDCDC"
>>> len(string)
7
>>> sub_string = "CDC"
>>> len(sub_string)
3
인덱싱 / 슬라이싱
원하는 문자열을 선택하는 방법이다. 인덱싱이 '점'이라면 슬라이싱은 '선'으로 원하는 범위를 지정할 수 있다.
인덱싱/슬라이싱의 숫자는 0부터 시작한다. 따라서 문자열의 길이가 '7'이라면, 인덱싱은 문자열[6]이 된다.
# 인덱싱은 대괄호 []를 사용한다.
>>> string = "ABCDCDC"
>>> string[0]
'A'
>>> string[6]
'C'
>>> sub_string = "CDC"
>>> sub_string[0]
'A'
>>> sub_string[2]
'C'
>>> sub_string[6]
IndexError: string index out of range
# 슬라이싱은 쌍점(:)을 사용한다.
# 다만, 슬라이싱 사용시 마지막 숫자는 포함되지 않는다.
# 따라서'마지막 숫자 +1'을 하여야 문자열의 마지막 값까지 출력이 가능하다.
>>> string = "ABCDCDC"
>>> string[0:6]
'ABCDCD'
>>> string[0:7]
'ABCDCDC'
>>> string[1:7]
'BCDCDC'
>>> string[5:999]
'DC'
>>> sub_string = "CDC"
>>> sub_string[0:2]
'CD'
>>> sub_string[0:3]
'CDC'
>>> sub_string[1:3]
'DC'
>>> sub_string[3:999]
''
for / range
https://bohemihan.tistory.com/entry/HackerRank-Python-Solution-Loops
'Develop > hackerrank.com' 카테고리의 다른 글
HackerRank Python Solution / Mutations (0) | 2022.01.17 |
---|---|
HackerRank Python Solution / What's Your Name? (0) | 2022.01.17 |
HackerRank Python Solution / String Split and Join (0) | 2022.01.17 |
HackerRank Python Solution / sWAP cASE (0) | 2022.01.11 |
HackerRank Python Solution / Tuples (0) | 2022.01.11 |