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"))

+ Recent posts