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

문자 스트림에서 첫 번째 비반복 문자를 찾는 Python 프로그램?

<시간/>

이 섹션에서는 문자열이나 문자 스트림에서 첫 번째 고유하거나 반복되지 않는 문자를 찾을 것입니다. 이 문제를 해결하는 방법은 여러 가지가 있습니다. 우리는 동일한 캐릭터 스트림에 대해 두 개의 다른 프로그램을 만들려고 노력할 것입니다.

방법 1:기능 사용

def firstNonRepeatingChar(str1):
   char_order = []
   counts = {}
   for c in str1:
      if c in counts:
         counts[c] += 1
      else:
         counts[c] = 1
         char_order.append(c)
   for c in char_order:
      if counts[c] == 1:
      return c
   return None

print(firstNonRepeatingChar('PythonforallPythonMustforall'))
print(firstNonRepeatingChar('tutorialspointfordeveloper'))
print(firstNonRepeatingChar('AABBCC'))

결과

M
u
None

위의 프로그램은 O(n) 솔루션을 제공합니다. 위의 프로그램에서 우리는 먼저 문자열을 한 번 반복합니다. 새 문자를 찾으면 값이 1인 counts 객체에 저장하고 char_order에 추가합니다. 반복되는 문자를 만나면 counts 값을 1씩 증가시킵니다. 마지막으로 char_order에서 값이 1인 문자를 찾을 때까지 char_order를 반복하여 반환합니다.

방법 2:while 루프 사용

s = "tutorialspointfordeveloper"
while s != "":
   slen0 = len(s)
   ch = s[0]
   s = s.replace(ch, "")
   slen1 = len(s)
   if slen1 == slen0-1:
      print ("First non-repeating character is: ",ch)
      break;
   else:
   print ("No Unique Character Found!")

결과

First non-repeating character is: u