问题描述
这是我的代码:
df['Value $'] = df['Value $'].replace({'\$|,': ''},regex=True)
df['Value $'] = df['Value $'].astype(dtype=np.float64)
为什么这个在线问题的所有解决方案都涉及映射或字典?我想知道为什么每个人似乎都在使该问题的解决方案过于复杂。这是时间复杂度的事情吗?时间复杂度是n,这不是理想的-人们会因为使用更好的时间复杂度而使用地图/词典吗?
解决方法
此方法的时间复杂度为n,这不理想
不!您的时间复杂度不是n的数量级。顺序为n 2 。
str.count
必须每次n次操作遍历整个字符串。你叫它n遍。因此,结果是n * n = n 2 复杂度,比将计数存储在字典中并进行查找要糟糕得多。
Python中最简单的实现(约为n次)是:
from collections import Counter
def is_isomoprhic(x,y):
xc,yc = Counter(x),Counter(y)
return all(xc[a] == xc[b] for a,b in zip(x,y))
,
您将找到最简单的解决方案---谢谢!!!
len(set(zip(list(s),list(s1)))) == len(set(s))
,
def is_isometric(x: str,y: str) -> bool:
trans = str.maketrans(x,y)
return x.translate(trans) == y