Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python을 사용하여 문자열에서 두 번째로 큰 숫자를 찾는 프로그램

<시간/>

영숫자 문자열 s가 있다고 가정하고 s에 나타나는 두 번째로 큰 숫자를 찾아야 합니다. 그런 문자열이 없으면 -1을 반환합니다.

따라서 입력이 s ="p84t3ho1n"과 같으면 숫자가 [1,3,4,8]이므로 출력은 4이므로 두 번째로 큰 숫자는 4입니다.

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • lst :=새로운 세트

  • 각 렛에 대해 수행

    • let이 알파벳이 아닌 경우

      • let을 ls에 정수로 삽입

  • lst의 크기가 <=1이면

    • 반환 -1

  • lst를 정렬한 후 마지막 두 번째 요소를 반환

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

예시

def solve(s):
   lst = set()
   for let in s:
      if not let.isalpha():
         lst.add(int(let))
   if len(lst) <= 1:
         return -1
   return sorted(list(lst))[len(lst) - 2]
s = "p84t3ho1n"
print(solve(s))

입력

"hello", "hlelo"

출력

True