16.08%
class Solution(object):
def subdomainVisits(self, cpdomains):
"""
:type cpdomains: List[str]
:rtype: List[str]
"""
do_dict = {}
for domain in cpdomains:
num,string = domain.split(' ')
num = int(num)
dot = string.split('.')
if string in do_dict.keys():
do_dict[string] += num
else:
do_dict[string] = num
for i in xrange(len(dot)-1):
do = string.split(dot[i]+'.')[-1]
if do in do_dict.keys():
do_dict[do] += num
else:
do_dict[do] = num
result = []
for i in do_dict:
result.append(str(do_dict[i])+' '+i)
return result
---------------------------------------
18.30
note:join()函数,用符号连接字串,和split()函数对应
class Solution(object):
def subdomainVisits(self, cpdomains):
"""
:type cpdomains: List[str]
:rtype: List[str]
"""
do_dict = {}
for domain in cpdomains:
num,string = domain.split(' ')
num = int(num)
dot = string.split('.')
for i in xrange(len(dot)):
do = '.'.join(dot[i:])
if do in do_dict.keys():
do_dict[do] += num
else:
do_dict[do] = num
result = []
for i in do_dict:
result.append(str(do_dict[i])+' '+i)
return result
-------------------------------
25.88%
note: 返回构建字串时format的优势
note: 以及collections.Counter()
class Solution(object):
def subdomainVisits(self, cpdomains):
"""
:type cpdomains: List[str]
:rtype: List[str]
"""
ans = collections.Counter()
for domain in cpdomains:
num,string = domain.split(' ')
num = int(num)
dot = string.split('.')
for i in xrange(len(dot)):
ans['.'.join(dot[i:])] += num
return ['{} {}'.format(value,key) for key, value in ans.items()]
-----------------------------------
另一种dict.get()函数的重要性
dict.get(key, default=None)
寻找key的value,找不到则返回默认值default
通常使用方法是dict.get(key,0),用来不存在的时候数数
68.02%
class Solution(object):
def subdomainVisits(self, cpdomains):
"""
:type cpdomains: List[str]
:rtype: List[str]
"""
do_dict = dict()
for domain in cpdomains:
num,string = domain.split(' ')
num = int(num)
dot = string.split('.')
for i in xrange(len(dot)):
do = '.'.join(dot[i:])
do_dict[do] = do_dict.get(do,0) + num
return ['{} {}'.format(value,key) for key,value in do_dict.items()]