번역: M 쿼리의 경우 주어진 문자열의 범위를 반대로 바꿉니다.
이 문제에서는 배열 값에 따라 주어진 문자열에 대해 M개의 역방향 질의를 수행하겠습니다.
문제를 해결하는 순진한 접근 방식은 주어진 배열 값에 따라 각 문자열 세그먼트를 반대로 바꾸는 것입니다.
최적화된 접근 방식은 동일한 하위 문자열을 두 번 뒤집으면 원래 문자열을 얻는 논리를 사용합니다.
문제 설명 − 알파벳 문자가 포함된 알파 문자열을 제공했습니다. 또한 양의 정수를 포함하는 M 크기의 arr[] 배열을 제공했습니다. 주어진 문자열에 대해 M 연산을 수행하고 최종 문자열을 반환해야 합니다.
각 연산에서 우리는 arr[i]를 가져와서 하위 문자열 arr[i]를 N − arr[i] + 1로 되돌려야 합니다.
示例例子
输入
으아악输출
으아악설명
执行第一个查询后,字符串变为 'psrqt'。
执行第二个查询后,我们得到了 'tqrsp'。
输入
으아악输출
으아악설명 − 如果我们对同一个查询执行偶数次,我们会得到串串。
输入
으아악输출
으아악Explanation − 동일한 쿼리를 홀수 번 수행하면 문자열의 반대가 나옵니다.
접근법 1
이 접근 방식에서는 reverse() 메서드를 사용하여 하위 문자열을 반전합니다. 주어진 쿼리를 사용하여 시작 및 끝 포인터를 취하고 주어진 문자열의 하위 문자열을 반전시킵니다.
알고리즘
步骤 1 - 开始遍历查询数组。
第2步 - 使用arr[p] - 1初始化'left'变weight。
3단계 − str_len − arr[p] + 1을 사용하여 'right' 변수를 초기화합니다.
4단계 − reverse() 메서드를 사용하여 하위 문자열을 왼쪽 포인터에서 오른쪽 포인터로 반전시킵니다.
예
으아악输출
으아악시간 복잡도 − 부분 문자열을 M번 뒤집는 경우 O(N*M)입니다.
공간 복잡성 − 동적 공간을 사용하지 않으므로 O(1)입니다.
방법이
이 접근 방식에서는 특정 쿼리를 사용하여 해당 특정 인덱스와 반전에 포함된 횟수를 계산합니다. 인덱스가 짝수 번 포함되면 이를 되돌릴 필요가 없습니다. 주어진 모든 쿼리에 인덱스가 홀수 번 포함된 경우 특정 인덱스의 문자를 뒤집어야 합니다.
알고리즘
步骤 1 - 初始ization长島等于字符串长島 的 'cnt' 列表,用 0 存储特引反转中流现的次数。
2단계 − 주어진 쿼리 배열을 탐색하고 현재 쿼리에 따라 문자열의 왼쪽 및 오른쪽 포인터를 가져옵니다.
3단계 − 또한 현재 쿼리의 왼쪽 및 오른쪽 포인터에 따라 'cnt' 목록을 업데이트하려면changeRange() 함수를 실행하세요.
3.1단계 −changeRange() 함수에서 'cnt' 목록의 '왼쪽' 인덱스에 있는 값을 증가시킵니다.
第3.2步 - 减小“cnt”列表中位于“right + 1”指针右侧的所有值。
여기서는 [왼쪽, 오른쪽] 범위에서 'cnt' 목록의 모든 값을 1씩 증가시켜야 했습니다. 따라서 접두사 sum을 사용하면 모든 값이 '왼쪽' 인덱스의 오른쪽에 있는 1만큼 증가하기 때문에 cnt[left]만 1만큼 증가했습니다. 또한 [right, str_len] 인덱스 사이의 cnt 값을 증가시키고 싶지 않으므로 접두사 합계가 1만큼 증가하므로 이미 1만큼 감소시켰습니다.
4단계 − 다음으로 getPrefixSum() 함수를 실행하여 'cnt' 목록의 접두어 합계를 계산합니다.
4.1단계 − getPrefixSum() 함수에서 문자열을 순회하고 이전 요소의 값을 현재 요소에 추가합니다.
步骤 5 - 接下来,以逆序遍历'cnt'列表。如果当前元素是奇数,则将其追加到'tmp'字符串中。
步骤 6 - 用0初始化'p'와'q',按光原始顺序遍历'cnt'列表。
步骤 7 − 如果'cnt'列表中的当前 元素是奇数,则使用tmp[q]更newalpha[p]。
8단계 − 마지막으로 알파 문자열을 반환합니다.
예
的中文翻译为:示例
으아악输출
으아악시간 복잡도 − O(M*N + N), 여기서 O(M*N)은 쿼리에 따라 'cnt' 목록을 업데이트하고 O(N)은 주어진 문자열을 업데이트합니다.
공공间复杂degree - 使사용 'cnt' 列表为 O(N)。
현재 제1방식 중, 저는 reveres()방식을 사용하고 있습니다.转中 流现의 次数。
위 내용은 번역: M 쿼리의 경우 주어진 문자열의 범위를 반대로 바꿉니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











12306 티켓 예매 앱의 최신 버전을 다운로드하세요. 모두가 매우 만족하는 여행 티켓 구매 소프트웨어입니다. 소프트웨어에서 제공되는 다양한 티켓 소스가 있어 매우 편리합니다. - 실명인증으로 온라인 구매가 가능합니다. 모든 사용자가 쉽게 여행티켓과 항공권을 구매하고 다양한 할인 혜택을 누릴 수 있습니다. 또한 사전에 예약하고 티켓을 얻을 수도 있습니다. 호텔을 예약하거나 차량으로 픽업 및 하차할 수도 있습니다. 한 번의 클릭으로 원하는 곳으로 이동하고 티켓을 구매할 수 있어 여행이 더욱 간편해지고 편리해집니다. 모든 사람의 여행 경험이 더욱 편안해졌습니다. 이제 편집자가 온라인으로 자세히 설명합니다. 12306명의 사용자에게 과거 티켓 구매 기록을 볼 수 있는 방법을 제공합니다. 1. 철도 12306을 열고 오른쪽 하단의 My를 클릭한 후 My Order를 클릭합니다. 2. 주문 페이지에서 Paid를 클릭합니다. 3. 유료페이지에서

Xuexin.com에서 내 학업 자격을 어떻게 확인하나요? Xuexin.com에서 학업 자격을 확인할 수 있습니다. 많은 사용자가 Xuexin.com에서 학업 자격을 확인하는 방법을 모릅니다. 다음으로 편집자는 Xuexin.com에서 학업 자격을 확인하는 방법에 대한 그래픽 튜토리얼을 제공합니다. 유저들이 와서 구경해 보세요! Xuexin.com 사용 튜토리얼: Xuexin.com에서 학업 자격을 확인하는 방법 1. Xuexin.com 입구: https://www.chsi.com.cn/ 2. 웹사이트 쿼리: 1단계: Xuexin.com 주소를 클릭합니다. 위의 홈페이지에 들어가려면 [교육 쿼리]를 클릭합니다. 2단계: 최신 웹페이지에서 아래 그림의 화살표와 같이 [쿼리]를 클릭합니다. 3단계: 새 페이지에서 [학점 파일에 로그인]을 클릭합니다. 4단계: 로그인 페이지에서 정보를 입력하고 [로그인]을 클릭합니다.

PHP에서 int 유형을 문자열로 변환하는 방법에 대한 자세한 설명 PHP 개발에서 int 유형을 문자열 유형으로 변환해야 하는 경우가 종종 있습니다. 이 변환은 다양한 방법으로 수행할 수 있습니다. 이 기사에서는 독자의 이해를 돕기 위해 특정 코드 예제와 함께 몇 가지 일반적인 방법을 자세히 소개합니다. 1. PHP 내장 함수 strval()을 사용하세요. PHP는 다양한 유형의 변수를 문자열 유형으로 변환할 수 있는 내장 함수 strval()을 제공합니다. int형을 string형으로 변환해야 할 때,

1. 먼저 pycharm을 열고 pycharm 홈페이지로 들어갑니다. 2. 그런 다음 새 Python 스크립트를 생성하고 마우스 오른쪽 버튼을 클릭하고 새로 만들기를 클릭한 후 Pythonfile을 클릭합니다. 3. 문자열(코드: s="-")을 입력합니다. 4. 그런 다음 문자열의 기호를 20번 반복해야 합니다(코드: s1=s*20). 5. 인쇄 출력 코드(코드: print(s1))를 입력합니다. 6. 마지막으로 스크립트를 실행하면 하단에 반환 값이 표시됩니다. - 20번 반복됩니다.

Golang에서 문자열이 특정 문자로 시작하는지 확인하는 방법은 무엇입니까? Golang으로 프로그래밍할 때 문자열이 특정 문자로 시작하는지 확인해야 하는 상황에 자주 직면하게 됩니다. 이 요구 사항을 충족하기 위해 Golang의 문자열 패키지에서 제공하는 기능을 사용할 수 있습니다. 다음에는 Golang을 사용하여 문자열이 특정 문자로 시작하는지 확인하는 방법을 구체적인 코드 예제와 함께 자세히 소개하겠습니다. Golang에서는 strings 패키지의 HasPrefix를 사용할 수 있습니다.

제목: Golang에서 문자열이 특정 문자로 끝나는지 확인하는 방법 Go 언어에서는 문자열을 처리할 때 문자열이 특정 문자로 끝나는지 확인해야 하는 경우가 있습니다. 이 기사에서는 Go 언어를 사용하여 이 기능을 구현하는 방법을 소개하고 참조용 코드 예제를 제공합니다. 먼저 Golang에서 문자열이 지정된 문자로 끝나는지 확인하는 방법을 살펴보겠습니다. Golang의 문자열에 포함된 문자는 인덱싱을 통해 얻을 수 있으며, 문자열의 길이는 다음과 같습니다.

MySQL과 PL/SQL은 각각 관계형 데이터베이스와 절차적 언어의 특성을 나타내는 서로 다른 두 가지 데이터베이스 관리 시스템입니다. 이 기사에서는 구체적인 코드 예제를 통해 MySQL과 PL/SQL 간의 유사점과 차이점을 비교합니다. MySQL은 SQL(구조적 쿼리 언어)을 사용하여 데이터베이스를 관리하고 운영하는 인기 있는 관계형 데이터베이스 관리 시스템입니다. PL/SQL은 Oracle 데이터베이스 고유의 절차적 언어로 저장 프로시저, 트리거, 함수 등의 데이터베이스 개체를 작성하는 데 사용됩니다. 같은

Go 언어는 문자열 가로채기를 포함하여 풍부한 문자열 처리 기능을 제공하는 강력하고 유연한 프로그래밍 언어입니다. Go 언어에서는 슬라이스를 사용하여 문자열을 가로챌 수 있습니다. 다음으로 Go 언어에서 문자열을 가로채는 방법을 구체적인 코드 예시와 함께 자세히 소개하겠습니다. 1. 슬라이싱을 사용하여 문자열 가로채기 Go 언어에서는 슬라이싱 표현식을 사용하여 문자열의 일부를 가로챌 수 있습니다. 슬라이스 표현식의 구문은 다음과 같습니다: Slice:=str[start:end]where, s
