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