[ Code Kata ] 문자열 내 해당 글자 찾아서 index 반환하기
문제
문자와 문자열이 주어졌을때, "get_find" 함수는 주어진 문자열에서 함께 주어진 문자가 나타나는 첫번째 위치를 반환합니다.
- 문자열의 첫번째 문자는 인덱스 값 0 을 가집니다.
- 만약 문자열에 해당 문자가 여러번 나타나면, 첫번째로 나타나는 위치를 반환해야 합니다.
- 만약 문자가 문자열에 존재하지 않는다면, -1 을 반환해야 합니다.
- find 함수를 사용하지 마세요.
👇🏻 예시 결과output = get_find('a', 'I am a hacker') print(output) # --> 2
풀이
def get_find(char, str):
num = 0
# 없을 때
if char not in str:
return -1
# 있을 때
else:
for i in str:
if i == char:
return num
else:
num += 1
👆🏻 내가 푼 것!
역시나 함수를 사용할 생각을 하지 못하고
충실하게 for, if로 노가다를 하고있는 아름다운 모습을 볼 수 있다^^
나랑은 다르게 다들 보다 간결하게, 파이썬 내장 함수를 사용해서
깔끔하게 풀어낸 것을 볼 수 있다
자..
index( )
a = list(str)
b = a.index(char)
return b
👆🏻 다른분이 푼 것 1!
- 매개변수로 받은 문자열을 리스트화 하면
👆🏻 요로케 한글자씩 리스트 내에 담기는데
이 리스트 내에서 내가 찾고자 하는 문자열 'char' 매개변수가 어느 순번에 있는지index( )
함수를 사용한뒤
그대로 리턴해주면 되었던 것!
range( )
for a in range(0, len(str))
if str[a] == char:
return a
if char not in str:
return -1
👆🏻 다른분이 푼 것 22!
- 매개변수로 받은 문자열 길이만큼으로 각 매개변수 단어마다
range( )
함수를 사용해서 각 문자열 내에서 for loop을 돌린다!
만약 문자열 내에서 n번째 글자가 일치해야 할 문자열 'char'매개변수와 같다면
그대로 리턴해주면 되는 것!
애초에 메서드 자체가 한 문자열만을 대상으로 호출되기 때문에,
해당 문자열의 글자 수만큼 반복하면서 그 안에 내가 원하는 단어가 있는지 체크하면 되었던 것!
Author And Source
이 문제에 관하여([ Code Kata ] 문자열 내 해당 글자 찾아서 index 반환하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@haileeyu21/TIL-문자열-내-해당-글자-찾아서-index-반환하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)