Python에서 반복되는 문자가 없는 가장 긴 하위 문자열
- Python에서 반복되는 문자가 없는 가장 긴 하위 문자열
-
While
루프를 사용하여 Python에서 가장 긴 하위 문자열 얻기 -
For
루프와If-Else
문을 사용하여 Python에서 가장 긴 하위 문자열 얻기
파이썬에서 부분 문자열을 만드는 방법과 문자를 반복하지 않고 부분 문자열을 만드는 방법을 예제와 함께 소개합니다.
Python에서 반복되는 문자가 없는 가장 긴 하위 문자열
이 튜토리얼에서는 지식을 높이고 루프를 더욱 완벽하게 만들 수 있는 독특한 것을 배웁니다. 문자를 반복하지 않고 문자열에서 하위 문자열을 만드는 방법을 배웁니다.
하위 문자열은 문자열이 있고 여러 개의 작은 부분으로 나누면 해당 특정 문자열의 하위 문자열이라고 합니다. 가장 긴 하위 문자열 방법은 동일한 알파벳을 반복하지 않는 가장 긴 하위 문자열을 얻으려는 경우 매우 유용합니다.
이 방법에서는 전체 문자열을 통과하고 각 요소를 하나씩 확인하고 원래 문자열의 반복되지 않는 하위 문자열을 제공하는 루프를 사용합니다.
Python 프로그래밍에는 가장 긴 하위 문자열을 얻는 방법이 많이 있습니다. 이러한 방법은 매우 간단하고 유용합니다. 우리는 그것들에 대해 자세히 논의할 것입니다.
While
루프를 사용하여 Python에서 가장 긴 하위 문자열 얻기
이 메서드에서 object
를 매개 변수로 사용하는 GetLongestSubstring
클래스를 생성합니다. 이 클래스 내에서 두 개의 매개변수를 사용하는 Length
라는 함수를 정의합니다.
주어진 문자열에서 가장 긴 하위 문자열을 찾을 때까지 while
루프를 거칩니다.
# python
class GetLongestSubstring(object):
def Length(self, x):
a = 0
b = 0
c = {}
sol = 0
while b < len(x):
if x[b] not in c or a > c[x[b]]:
sol = max(sol, (b - a + 1))
c[x[b]] = b
else:
a = c[x[b]] + 1
sol = max(sol, (b - a + 1))
b -= 1
b += 1
return sol
obj = GetLongestSubstring()
print(obj.Length("ABCDEFGABCGHIJKLMNO"))
출력:
위의 예에서 볼 수 있듯이 가능한 가장 긴 하위 문자열의 길이는 원래 문자열의 ABCGHIJKLMNO
하위 문자열과 동일한 12입니다.
For
루프와 If-Else
문을 사용하여 Python에서 가장 긴 하위 문자열 얻기
for
루프를 사용하여 동일한 시나리오를 달성하려고 합니다. 먼저 아래와 같이 GetLongestSubstring
함수를 정의합니다.
이 함수는 원래 문자열을 여러 하위 문자열로 변환하고 하위 문자열이 고유한지 여부를 확인합니다. 아래와 같이 이 함수는 길이가 가장 긴 하위 문자열을 반환합니다.
# python
def GetLongestSubstring(x):
if len(set(x)) == len(x):
return len(x)
Substring = ""
StrLen = 1
for a in x:
if a not in Substring:
Substring = Substring + a
StrLen = max(StrLen, len(Substring))
else:
Substring = Substring.split(a)[1] + a
print(Substring)
return StrLen
print(GetLongestSubstring("ABCDEFGABCGHIJKLMNO"))
출력:
위의 솔루션에서 볼 수 있듯이 if-else
문과 함께 for
루프를 사용하여 문자열에서 가장 긴 하위 문자열을 쉽게 얻을 수 있습니다.
Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.
LinkedIn