fork download
  1. # your code goes here
  2. class Solution:
  3. def numOfSubsequences(self, s: str) -> int:
  4. n = len(s)
  5.  
  6. preL = [0] * (n + 2)
  7. preLC = [0] * (n + 2)
  8.  
  9. l = 0
  10. lc = 0
  11. countLCT = 0
  12.  
  13. for i in range(n):
  14. if s[i] == 'L':
  15. l += 1
  16. elif s[i] == 'C':
  17. lc += l
  18. elif s[i] == 'T':
  19. countLCT += lc
  20. preL[i + 1] = l
  21. preLC[i + 1] = lc
  22.  
  23. sufT = [0] * (n + 5)
  24. sufCT = [0] * (n + 5)
  25. t = 0
  26. ct = 0
  27.  
  28. for i in range(n - 1, -1, -1):
  29. if s[i] == 'T':
  30. t += 1
  31. elif s[i] == 'C':
  32. ct += t
  33. sufT[i + 1] = t
  34. sufCT[i + 1] = ct
  35.  
  36.  
  37. answer1 = sufCT[1] + countLCT
  38.  
  39.  
  40. answer2 = preLC[n] + countLCT
  41.  
  42.  
  43. answer3 = 0
  44. for i in range(1, n + 1):
  45. answer3 = max(answer3, preL[i] * sufT[i + 1])
  46.  
  47. return max(answer1, answer2, answer3 + countLCT)
Success #stdin #stdout 0.07s 13992KB
stdin
Standard input is empty
stdout
Standard output is empty