1. def ff_cal_char_rept0(st, n):
    2. times = 0
    3. flag = False
    4. for i in range(0, len(st)):
    5. if i == 0:
    6. times = 1
    7. else:
    8. if st[i - 1] != st[i]:
    9. times = 1
    10. else:
    11. times += 1
    12. if times == n:
    13. flag = True
    14. break
    15. return flag
    16. def ff_cal_char_rept1(st, n):
    17. times = 1
    18. for i in range(1, len(st)):
    19. times = 1 if st[i - 1] != st[i] else times + 1
    20. if times == n:
    21. return True
    22. return False
    23. def ff_cal_char_rept2(st, n):
    24. st_ = set(st)
    25. if len(st) - len(st_) < n-1:
    26. return False
    27. for i in st_:
    28. if i*n in st:
    29. return True
    30. return False
    31. m1 = '888888881'
    32. m2 = '123456789'
    33. m3 = '888888811'
    34. m4 = '123123'
    35. m5 = 'ININININININININININIII'
    36. m6 = m5*10
    37. m7 = '888888878'
    38. m8 = 'QWERTYUIOP_*&^%$#@!ASDFGH)ZXCVBNMLKJ'
    39. m9 = '88888888888'
    40. m = [m1, m2, m3, m4, m5, m6, m7, m8, m9]
    41. for i in m:
    42. print(i+':')
    43. %time ff_cal_char_rept0(i, n=8)
    44. %time ff_cal_char_rept1(i, n=8)
    45. %time ff_cal_char_rept2(i, n=8)
    46. print(ff_cal_char_rept0(i, n=8), ff_cal_char_rept1(i, n=8), ff_cal_char_rept2(i, n=8))
    47. print('\n')
    48. # 全面测试
    49. """
    50. 888888881:
    51. CPU times: user 8 µs, sys: 2 µs, total: 10 µs
    52. Wall time: 14.1 µs
    53. CPU times: user 7 µs, sys: 1e+03 ns, total: 8 µs
    54. Wall time: 11.9 µs
    55. CPU times: user 8 µs, sys: 0 ns, total: 8 µs
    56. Wall time: 12.2 µs
    57. True True True
    58. 123456789:
    59. CPU times: user 17 µs, sys: 3 µs, total: 20 µs
    60. Wall time: 19.3 µs
    61. CPU times: user 0 ns, sys: 11 µs, total: 11 µs
    62. Wall time: 33.1 µs
    63. CPU times: user 8 µs, sys: 1 µs, total: 9 µs
    64. Wall time: 14.1 µs
    65. False False False
    66. 888888811:
    67. CPU times: user 9 µs, sys: 1 µs, total: 10 µs
    68. Wall time: 16.2 µs
    69. CPU times: user 9 µs, sys: 2 µs, total: 11 µs
    70. Wall time: 15 µs
    71. CPU times: user 7 µs, sys: 0 ns, total: 7 µs
    72. Wall time: 11.2 µs
    73. False False False
    74. 123123:
    75. CPU times: user 6 µs, sys: 1 µs, total: 7 µs
    76. Wall time: 10.5 µs
    77. CPU times: user 7 µs, sys: 0 ns, total: 7 µs
    78. Wall time: 10 µs
    79. CPU times: user 5 µs, sys: 1 µs, total: 6 µs
    80. Wall time: 9.78 µs
    81. False False False
    82. ININININININININININIII:
    83. CPU times: user 8 µs, sys: 1 µs, total: 9 µs
    84. Wall time: 13.1 µs
    85. CPU times: user 7 µs, sys: 1 µs, total: 8 µs
    86. Wall time: 11.7 µs
    87. CPU times: user 7 µs, sys: 0 ns, total: 7 µs
    88. Wall time: 10.7 µs
    89. False False False
    90. ININININININININININIIIININININININININININIIIININININININININININIIIININININININININININIIIININININININININININIIIININININININININININIIIININININININININININIIIININININININININININIIIININININININININININIIIININININININININININIII:
    91. CPU times: user 34 µs, sys: 0 ns, total: 34 µs
    92. Wall time: 37 µs
    93. CPU times: user 25 µs, sys: 5 µs, total: 30 µs
    94. Wall time: 33.9 µs
    95. CPU times: user 0 ns, sys: 10 µs, total: 10 µs
    96. Wall time: 14.1 µs
    97. False False False
    98. 888888878:
    99. CPU times: user 6 µs, sys: 1 µs, total: 7 µs
    100. Wall time: 11.7 µs
    101. CPU times: user 6 µs, sys: 1 µs, total: 7 µs
    102. Wall time: 10.7 µs
    103. CPU times: user 7 µs, sys: 0 ns, total: 7 µs
    104. Wall time: 10.7 µs
    105. False False False
    106. QWERTYUIOP_*&^%$#@!ASDFGH)ZXCVBNMLKJ:
    107. CPU times: user 11 µs, sys: 2 µs, total: 13 µs
    108. Wall time: 16.7 µs
    109. CPU times: user 11 µs, sys: 0 ns, total: 11 µs
    110. Wall time: 14.5 µs
    111. CPU times: user 8 µs, sys: 1 µs, total: 9 µs
    112. Wall time: 12.4 µs
    113. False False False
    114. 88888888888:
    115. CPU times: user 6 µs, sys: 1 µs, total: 7 µs
    116. Wall time: 11 µs
    117. CPU times: user 0 ns, sys: 7 µs, total: 7 µs
    118. Wall time: 10.7 µs
    119. CPU times: user 6 µs, sys: 1 µs, total: 7 µs
    120. Wall time: 10.5 µs
    121. True True True
    122. """