Q. 다음과 같이 영어로 되어 있는 문자열이 있을 때, 이 문자열에서 반복되지 않는 첫번째 문자를 반환하시오. 만약 그런 문자가 없다면 _ 를 반환하시오.
배열 0 * 26 초기화 후 위치에 해당하는 문자가 존재할 경우 + 1
그중 값이 1인 위치에 해당하는 문자만 배열B에 담아옴
초기 문자열의 문자가 배열B에 존재할 경우 리턴
def find_not_repeating_first_character(string):
alphabet_occurrence_array = [0] * 26
for char in string:
if not char.isalpha():
continue
arr_index = ord(char) - ord('a')
alphabet_occurrence_array[arr_index] += 1
not_repeating_charager_arry = []
for index in range(len(alphabet_occurrence_array)):
alphabet_occurrence = alphabet_occurrence_array[index]
if alphabet_occurrence == 1:
not_repeating_charager_arry.append(chr(index + ord("a")))
for char in string:
if char in not_repeating_charager_arry:
return char
else:
return "_"
result = find_not_repeating_first_character
print("정답 = d 현재 풀이 값 =", result("abadabac"))
print("정답 = c 현재 풀이 값 =", result("aabbcddd"))
print("정답 =_ 현재 풀이 값 =", result("aaaaaaaa"))
'프로그래밍 > Algorithm' 카테고리의 다른 글
문자열 뒤집기 (0) | 2022.08.21 |
---|---|
곱하기 or 더하기 (파이썬 python) (0) | 2022.08.03 |
배열에서 특정 요소 찾기 (파이썬 python) (0) | 2022.08.03 |
시간복잡도, 공간 복잡도, 점근 표기법 (0) | 2022.08.03 |
알파벳 최빈값 찾기 (파이썬 python) (0) | 2022.08.02 |