이 문제에는 문자열 "str", 정수 K, 정수 X가 제공됩니다. 문자열 "str"에는 1에서 9 사이의 정수만 포함됩니다. 우리는 이 문자열에 대해 X 연산을 수행해야 합니다. 작업은 매번 문자열의 문자 발생 횟수를 문자열의 문자로 바꿔야 한다는 것입니다. 여기서 빈도는 문자열의 문자 수 또는 값을 나타냅니다. 우리의 임무는 주어진 연산을 X번 수행한 후 k번째 문자를 반환하는 것입니다.
우리는 주어진 작업을 3번 수행했습니다.
으아아아문자 str[0]의 경우 빈도는 1이고 값은 1이므로 1이 1번 나타납니다.
문자 str[1]의 경우 빈도는 2이고 값은 2이므로 2가 2번 나타납니다.
다른 캐릭터도 비슷해요.
그러므로 정확히 X번 후에 문자열의 K번째 문자는 2입니다. 따라서 답은 2입니다.
으아아아 으아아아주어진 문자열 위의 예를 보았으므로 메소드로 이동하겠습니다. -
이 방법에서는 주어진 연산을 X번까지 수행하여 새 문자열을 계산합니다. 문자열을 정확히 X번 가져온 후 문자열의 K번째 문자를 반환합니다.
위 방법을 더 잘 이해하기 위해 코드를 살펴보겠습니다. -
으아아아시간과 공간의 복잡성
시간 복잡도는 주어진 문자열 숫자에 따라 달라지며 숫자의 x승과 각 숫자의 합과 같습니다.
공간 복잡도는 시간 복잡도와 정확히 같습니다.
위 방법의 최적화된 버전입니다. 여기서는 매번 문자열을 생성하는 대신 각 헌장의 범위를 X번 계산합니다.
여기서 우리는 시간의 힘으로 증가된 캐릭터 값에 비해 캐릭터가 증가할 때마다 관찰합니다.
아래에서 위 방법의 주요 단계에 대해 논의해 보겠습니다. -
kthChar 변수를 만들어 x배 문자열의 KthChar를 저장하세요
X번 이후 각 문자의 발생 횟수를 저장하는 변수 tot를 만듭니다
for 루프를 사용하여 문자열을 반복하고 다음 단계를 수행하세요
->현재 캐릭터의 값을 가져옵니다
->이 값과 X를 사용하면 X회 이후 현재 문자의 범위를 얻을 수 있습니다. 보시다시피 캐릭터의 힘 수치가 X만큼 증가할 때마다
pow(값, X)로.
−> X번 이후의 문자열 길이를 유지하려면 "tot" 변수에 범위를 저장하세요
−> X번 이후의 K번째 문자가 현재 문자열 길이 내에 있는지 확인하세요
As (K
kthChar로 돌아가기
시간과 공간의 복잡성
위 코드의 시간 복잡도는 O(N)입니다. 여기서 N은 주어진 길이의 크기입니다.
위 코드의 공간 복잡도는 추가 공간을 사용하지 않기 때문에 O(1)입니다.
이 튜토리얼에서는 각 문자를 해당 빈도로 정확히 X번 바꾼 후 문자열에서 K번째 문자를 찾는 프로그램을 구현했습니다. 우리는 두 가지 방법을 구현했습니다. 하나는 순진한 방법이고 다른 하나는 효과적인 방법입니다.
위 내용은 문자열의 각 문자를 해당 빈도가 정확히 X회 뒤의 K번째 문자로 대체됩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!