単語の異なる文字の数[9/30/2012] Challenge #102 [intermediate] (n-character-set strings) : dailyprogrammer

[9/30/2012] Challenge #102 [intermediate] (n-character-set strings) : dailyprogrammer

問題

単語sと数nを受け取り、単語の異なる文字の数がn以下の時Trueそれ以外の場合False返す関数。

解答

def ncset(s, n):
    return len(set(s)) <= n

if __name__ == "__main__":
    words = open("enable1.txt").read().split()
    print len(filter(lambda x: ncset(x, 4), words))

setを使うと簡単すぎて困る。他言語でもHashつかってサイズ取るとか、ソートして配列走査するなどやりようは何通りかあると思う。