Как узнать, сколько раз 2 следует 3 в списке - PullRequest
0 голосов
/ 16 февраля 2020

Если у меня есть число 13245. Мне нужно узнать, сколько раз число 2 следует за числом 3.

def thirtyTwos(n):
  lst=(map(int,str(n)))
  count=0
  i=0
  j=1
  while i<len(lst):
    while j<len(lst):
        if lst[i]==3>lst[j]==2:

                count+=1
        j+=1
    j=i+1
    i+=1
return count

Но на некоторых числах оно получается неверным. Что мне теперь делать?

Ответы [ 2 ]

1 голос
/ 16 февраля 2020

Подход с использованием регулярных выражений:

import re                                                               

def count_32(number): 
    if not isinstance(number, str): 
        number = str(number) 
    return len(re.findall('32', number)) 
1 голос
/ 16 февраля 2020

Это работает:

def count_32(number):
    number = str(number)

    prev_char = ""
    count = 0
    for char in number:
        if char == "2" and prev_char == "3":
            count += 1
        prev_char = char

    return count

for x in [13245, 2345, 32432, 3323232]:
    print(x, count_32(x))

Вывод:

13245 1
2345 0
32432 2
3323232 3
...