Python에서 반복되는 문자가 없는 가장 긴 하위 문자열

Rana Hasnain Khan 2024년2월15일
  1. Python에서 반복되는 문자가 없는 가장 긴 하위 문자열
  2. While 루프를 사용하여 Python에서 가장 긴 하위 문자열 얻기
  3. For 루프와 If-Else 문을 사용하여 Python에서 가장 긴 하위 문자열 얻기
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"))

출력:

python에서 while 루프를 사용하는 가장 긴 하위 문자열

위의 예에서 볼 수 있듯이 가능한 가장 긴 하위 문자열의 길이는 원래 문자열의 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"))

출력:

python에서 for 루프를 사용하는 가장 긴 하위 문자열

위의 솔루션에서 볼 수 있듯이 if-else 문과 함께 for 루프를 사용하여 문자열에서 가장 긴 하위 문자열을 쉽게 얻을 수 있습니다.

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

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

관련 문장 - Python String