Как и в большинстве других вещей, когда дело доходит до кодирования, практика делает его совершенным… и эффективным, читабельным и чистым.

Чтобы подготовиться к техническим собеседованиям, которые в нашем неизбежном будущем, моя когорта Data Science Immersion занимается наиболее распространенными проблемами программирования, которые наши инструкторы должны решить.

Ниже приведена подборка решений очень распространенной уникальной символьной функции из краудсорсинга.

Задача 4: Уникальные персонажи

Реализуйте алгоритм для определения уникальности каждого символа в строке.

#Valeria Rozenbaum
def is_unique(string):
    char_dict = {}
    for char in string:
        if char_dict.get(char):
            return False
        else:
            char_dict[char] = True
    return True

Мой одноклассник Брендан сделал пару действительно творческих снимков проблемы.

#Brendan Bailey
#Solution 1
def unique_characters(word):
    unique_set = set([])
    unique_phrase = "All characters are unique"
    for letter in word.lower():
        if letter in unique_set:
            unique_phrase = "Not all characters are unique"
        else:
            unique_set.add(letter)
    print word, ":", unique_phrase

#Solution 2
def unique_characters1(word):     
    unique_dict = {}     
    unique_phrase  = "All characters are unique"     
    for letter in word.lower():         
        try:             
            unique_dict[letter] +=1             
            unique_phrase = "Not all characters are unique"             
            break         
        except KeyError:             
            unique_dict[letter] = 1     
   print word, ":", unique_phrase

Брайан Остин также применил отличный подход, который сильно отличался от моего собственного.

#Brian Austin
def unstr_1(string):
    letter_counter = {}
    unique = True
    for i in string:
        if i not in letter_counter:
            letter_counter[i]=1
        else:
            letter_counter[i]+=1
    for i in letter_counter:
        if letter_counter[i]>1:
            print "Letter",i,"is in the string",letter_counter[i],'times'
            unique =False
    if unique == True:
            return "All letters unique"