Il existe une liste de chaînes de date, comme suit :
lst = ['2017-06-01', '2017-06-08', '2017-06-15', '2017-06-22', '2017-06-29', ...]
Trouvez quelle chaîne de date dans s = ['2017-06-09']
与lst
est la plus similaire
Idée 1 : convertissez les valeursde s et lst en dates, parcourez et comparez la différence en secondes, et la plus petite est la chaîne de date que vous recherchez.
Existe-t-il une meilleure façon d’y parvenir ? ?
Je vais vous donner une idée pour votre référence
lst.append(s)
lst.sort()
num=lst.index(s)
Puis comparez lst[num-1] et lst[num+1] Le plus petit le nombre de secondes de différence est le résultat, il n'est donc pas nécessaire de parcourir et de calculer l'horodatage.
Si vous le trouvez bien, donnez-le à Zanga et adoptez-le.
Soustrayez les dates en supprimant les dates entre
-
转换为整数, 再分别与s
, et le nombre avec la plus petite valeur absolue est la date la plus proche.Je pense que lz signifie ne pas parcourir lst. Qu'il s'agisse d'un tri ou d'une soustraction, le parcours se produit réellement
.Je devrais utiliser la méthode de dichotomie. C'est probablement ce que cela signifie
Il suffit de le lire sous forme de pseudo-code, c'est ce que cela signifie de toute façon, de cette façon, le nombre de traversées est le moins possible.