fork download
  1. from time import *
  2. import re
  3. import random
  4.  
  5.  
  6. def f1(a,b):
  7. m=b.split("^")
  8. s=''
  9. for i in range(len(a)):
  10. s+=m[i]
  11. s+=a[i]
  12. s+=m[-1]
  13. return s
  14.  
  15. def f2(a,b):
  16. m=b.split("^")
  17. s=[]
  18. for i in range(len(a)):
  19. s.append(m[i])
  20. s.append(a[i])
  21. s.append(m[-1])
  22. return "".join(s)
  23.  
  24. def f3(a,b):
  25. m=b.split("^")
  26. return "".join(m[i]+a[i] for i in range(len(a)))+m[-1]
  27.  
  28. r=re.compile("\^")
  29. def f4(a,b):
  30. s=""
  31. i=0
  32. for t,m in enumerate(r.finditer(b)):
  33. s+=b[i:m.start()]+a[t]
  34. i=m.end()
  35. s+=b[i:]
  36. return s
  37.  
  38. def f5(a,b):
  39. s=b
  40. for x in a:
  41. s=s.replace("^",x,1)
  42. return s
  43.  
  44. alpha = 'abcdefghijklmnopqrstuvwxyz'
  45. number = '0123456789'
  46. def g(n):
  47. data=[]
  48. for c in range(n):
  49. w=random.randint(12,30)
  50. a=["".join(random.choices(alpha,k=random.randint(5,20))) for x in range(w)]
  51. b="^".join("".join(random.choices(number,k=random.randint(5,20))) for x in range(w+1))
  52. data+=[[a,b]]
  53. return data
  54.  
  55. def test(*ff):
  56. a=["aa","bb","cc"]
  57. b="111^222^3333^44444"
  58. data=g(10000)
  59. print(f"example data:\n{data[0][0]}\n{data[0][1]}")
  60. for f in ff:
  61. assert f(a,b)=="111aa222bb3333cc44444"
  62. print(f"{f.__name__}: {f(a,b)}")
  63. t1=time()
  64. c=[f(*x) for x in data]
  65. t2=time()
  66. print(f"time: {(t2-t1)*1e3:.3f}")
  67.  
  68. test(f1,f2,f3,f4,f5)
  69.  
  70.  
Success #stdin #stdout 2.26s 44976KB
stdin
Standard input is empty
stdout
example data:
['rzeluewel', 'vuauszupsd', 'bqdcdvxaozo', 'wmvrfnnarmnuohd', 'wifnqyivjjyxvsnc', 'oejtghlegjokrrlhxaw', 'hvwimfcqkvd', 'cgmxvftduqhxwa', 'kvqbwyxvbst', 'dwxsxxiffsfkquhx', 'uaxthgkufvk', 'zjtxvemlksqcirez', 'wcxhmaat', 'ukqccbbexktdahjstyh', 'adjtrdnftzgzck', 'dgxletilxjxlaffc', 'hvfrddxxspsj', 'fbwaolwpfhpxox', 'dbrnsotkhgpabrxtsir', 'cslicyo', 'wjaakoyao', 'lkgyeanecnnangzv', 'vuaagxm', 'qidvk']
8565821^1969761433^357297^775871910863221^61215113002^624947197899^048290288^5770996^090096975635825248^24154569822867965729^014022771954138319^28028492803635495^98603^9889744^30777296188^46324106509798193933^950387^371727121479^3759694378356^8741059494681050^2716240628676528158^88358^37611^10440015^987282770002660537
f1: 111aa222bb3333cc44444
time: 58.503
f2: 111aa222bb3333cc44444
time: 51.450
f3: 111aa222bb3333cc44444
time: 49.980
f4: 111aa222bb3333cc44444
time: 101.980
f5: 111aa222bb3333cc44444
time: 87.889