문자열에 재귀 적으로 부분 문자열을 작성하는 함수가 있습니다. 아무도 이것의 복잡성을 말해 주시겠습니까? 나는 그것의 O (2 * n)을 추측하고있다. 왜냐하면 주어진 n의 입력에 2 개의 * n 부분 문자열이있을 수 있지만 100 % 확신 할 수는 없다.파이썬에서 사전 조회의 시간 복잡도
def build_substrings(string):
""" Returns all subsets that can be formed with letters in string. """
result = []
if len(string) == 1:
result.append(string)
else:
for substring in build_substrings(string[:-1]):
result.append(substring)
substring = substring + string[-1]
result.append(substring)
result.append(string[-1])
return result
나는 실제로 내가 새로운 주제를받을 자격이되지 않습니다 생각보다 문제에 있습니다
여기에 코드입니다. 파이썬 (사전의 항목)에서 사전에있는 키를 검색하는 것이 얼마나 복잡한 지 궁금합니다. 도움을 주셔서 감사합니다.
입니다 주어진 문자열의 가능한 하위 문자열? – theharshest
dict의 키 조회는'O (1)'이어야합니다. '2 * n '으로'2 ** n'을 의미합니까? 또한, 귀하의 질문에 대답하기 위해 귀하의 기능 타이밍을 권하고 싶습니다. –
2 ** n-1 개의 문자열을 만들고 있습니다. 또한 string = ""의 특별한 경우를 처리해야합니다. 꽤 심한 역 추적을합니다. –