fork download
  1. '''
  2. Description:
  3. Secventa de cautat.
  4. Se citeste de la tastatura un numar natural cu cel mult 100 de cifre. Determinati
  5. cea mai lunga secventa de cifre consecutive, pozitia de inceput a acesteia si
  6. continutul. In caz ca exista mai multe secvente de aceeasi dimensiune maxima,
  7. afisati-o pe prima din sir.
  8.  
  9. Input:
  10. 777123411177
  11. Output:
  12. Lungimea maxima: 4
  13. Prima pozitie: 4
  14. Subsirul: 1234
  15. '''
  16. def search( s ):
  17. iMax = 0
  18. lMax = 1
  19. iCurr = 0
  20. i = 0
  21. n = len(s)
  22.  
  23. while i < n:
  24. if i - iCurr > lMax:
  25. lMax = i - iCurr
  26. iMax = iCurr
  27.  
  28. iCurr = i
  29.  
  30. while i < n - 1 and int(s[i]) + 1 == int(s[i+1]):
  31. i += 1
  32. i +=1
  33.  
  34. return [iMax, lMax]
  35.  
  36. def main():
  37.  
  38. num = input("Number = ")
  39. print("Number =", num)
  40. iMax, lMax = search(num)
  41. print("Start Position:", iMax)
  42. print("Length:",lMax)
  43. print("Subsequence:", end ="")
  44. for i in range(iMax, iMax + lMax):
  45. print(num[i], end = "")
  46. print()
  47. main()
  48.  
Success #stdin #stdout 0.02s 9272KB
stdin
77777777777777777777777777777772345888888888888888888888888812388888888888888888333333333333333333
stdout
Number = Number = 77777777777777777777777777777772345888888888888888888888888812388888888888888888333333333333333333
Start Position: 31
Length: 4
Subsequence:2345