[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つかってサイズ取るとか、ソートして配列走査するなどやりようは何通りかあると思う。