daily log 11.04.20

less than 1 minute read


# No additional data structure
def isUnique(string):
    for i,s in enumerate(string):
        for j,ss in enumerate(string):
            if i!=j:
                if string[i] == string[j]:
                    return False
    return True
            

isUnique('abcde')
isUnique('aaa')

# with additional data structure
def isUnique(string):
    if len(string) > 128:
        return False
    
    char_set = [False for _ in range(128)]
    for s in string:
        idx = ord(s)
        if char_set[idx]:
            return False
        
        char_set[idx] = True
    return True

isUnique('abc')
isUnique('aaa')

def isPermutation(str1, str2):
    if len(str1) != len(str2):
        return False
    
    letters = [0 for _ in range(128)]
    for s in str1:
        letters[ord(s)] += 1
    
    for s in str2:
        letters[ord(s)] -= 1
        if letters[ord(s)] < 0:
            return False
    
    return True
        

isPermutation('tacocat', 'cattaco')
isPermutation('tacocat', 'cattttt')