목차
문자열의 사용 사양은 무엇인가요?
문법
알고리즘
따라야 할 방법
방법 2
예 2
출력
결론
백엔드 개발 C++ 주어진 제약 조건 하에서 N개의 작업으로 문자열 'S'에서 N개의 문자를 제거한 후 값을 찾습니다.

주어진 제약 조건 하에서 N개의 작업으로 문자열 'S'에서 N개의 문자를 제거한 후 값을 찾습니다.

Aug 26, 2023 pm 10:29 PM
삭제 작업 제약

주어진 제약 조건 하에서 N개의 작업으로 문자열 S에서 N개의 문자를 제거한 후 값을 찾습니다.

문자열의 사용 사양은 무엇인가요?

주어진 문자열 S와 관련된 특정 과제를 해결하세요. 문자열 S에는 영어 소문자만 포함되며 문자를 제거할 때는 특정 제약 조건을 따라야 합니다.

주어진 제약조건은 -

  • S

  • 문자열에는 영문소문자가 있습니다
  • 문자열에 여러 번 나타나는 문자만 삭제할 수 있습니다.

  • 연속된 문자만 삭제할 수 있습니다. 다음 단계를 사용하여 문자열 S -

  • 에서 문자를 제거할 수 있습니다.
  • 문자열 S를 반복하면서 여러 번 나타나는 모든 문자를 찾습니다. 각 문자에 대해 문자열 S를 다시 반복하여 문자가 연속적으로 나타나는 모든 항목을 찾습니다.

  • 연속 문자 발생 횟수가 반복 횟수보다 크거나 같으면 처음 N 발생 문자를 삭제합니다.

  • 모든 반복이 완료될 때까지 2단계와 3단계를 계속합니다.

마지막으로 최종 문자열 S를 반환하면 N 연산 후 N 문자를 제거한 후 문자열의 값을 찾을 수 있습니다.

문법

이 주제는 특정 수의 작업을 수행하여 주어진 문자열을 조작하는 것과 관련된 코딩 질문입니다. 각 작업에서 문자열의 가장 일반적인 문자가 제거되고 나머지 각 문자의 빈도가 업데이트됩니다. 이 작업을 N번 수행한 후 남은 각 문자의 빈도를 제곱하고 합산하여 문자열의 최종 값을 계산합니다. 이 문제의 목표는 문자열과 숫자 N을 입력으로 받아 주어진 제약 조건에 따라 N 연산을 수행한 후 문자열의 최종 값을 출력하는 프로그램을 작성하는 것입니다.

다음은 주어진 제약 조건에서 문자열 S의 N 문자를 제거하기 위해 N 작업 후 값을 찾는 함수의 구문입니다. -

으아아아

이 함수는 두 개의 매개변수를 허용합니다 -

  • n - 수행할 작업 수를 나타내는 정수입니다.

  • s - 입력 문자열을 나타내는 문자열입니다.

함수는 먼저 배열을 사용하여 입력 문자열에서 각 문자의 빈도를 계산합니다. 그런 다음 이 빈도 배열은 내림차순으로 정렬되고 N 번 수행됩니다. 각 작업에서 가장 일반적인 문자의 빈도가 줄어들고 빈도 배열이 다시 정렬됩니다.

마지막으로 함수는 정렬된 빈도 배열에 있는 각 문자의 빈도 제곱을 더하여 문자열의 값을 계산하고 이를 정수로 반환합니다.

알고리즘

N개의 문자 제거 프로세스 후 알고리즘은 다음 제약 조건에 따라 문자열 값을 계산합니다. 입력은 숫자 N과 문자열 S로 구성됩니다.

  • 1단계 - 배열을 사용하여 입력 문자열에서 각 문자의 빈도를 결정합니다.

  • 2단계 - 이 주파수 배열을 내림차순으로 정렬합니다.

  • 3단계 - N 연산을 수행합니다. 각 연산은 주파수 배열에서 가장 빈번한 문자의 빈도를 줄입니다.

  • 4단계 - 주파수 배열을 재정렬합니다.

  • 5단계 - 정렬된 빈도 배열에 있는 각 문자의 빈도 제곱을 더하여 문자열 값을 결정합니다.

  • 6단계 - N 연산 후 문자열 값은 제곱의 합이 됩니다.

이 기술은 문제가 입력 문자열 S에서 N 문자를 제거해야 하기 때문에 작동합니다. 이는 각 작업이 문자열에서 가장 일반적인 문자를 한 번 제거하는 N 작업을 수행하는 것과 같습니다. 작업의 제약으로 인해 실제로 문자열에서 문자를 제거할 수 없으므로 각 작업의 빈도 배열에서 가장 일반적인 문자의 빈도를 줄여 이 작업을 시뮬레이션해야 합니다.

따라야 할 방법

방법 1

코드를 사용하여 샘플 문자열 S와 다양한 연산 N을 초기화합니다. 루프의 각 작업 후에 다음 문자보다 큰 초기 문자가 제거됩니다. 삭제하지 않으면 마지막 문자가 삭제됩니다. 모든 작업이 완료된 후 문자열의 최종 값을 인쇄합니다.

여기서 코드는 N이 문자열 S의 길이보다 작거나 같다고 가정합니다. N이 S보다 길면 코드가 예상대로 실행되지 않습니다.

예 1

으아아아

출력

으아아아

방법 2

이 코드에서는 먼저 배열을 사용하여 입력 문자열의 각 문자 빈도를 결정합니다. 다음으로 N 연산을 수행하여 각 연산에서 가장 일반적인 문자의 빈도를 줄이고 빈도 배열을 다시 정렬합니다. 다음으로 이 주파수 배열을 내림차순으로 정렬합니다.

문자열의 값은 정렬된 빈도 배열에 있는 각 문자의 빈도 제곱을 더하여 최종적으로 결정됩니다.

예 2

으아아아

출력

으아아아

결론

요약하자면, N 연산 후 값을 얻기 위해 직접적인 기술을 사용하면 위의 제약 조건 하에서 문자열 "S"에서 N 문자를 제거할 수 있습니다. 먼저, 문자열에 몇 개의 문자가 있는지 추적하기 위해 빈도 배열을 초기화하겠습니다. N개의 문자를 제거한 후에는 빈도 배열에서 가장 큰 문자를 제거하는 프로세스를 반복할 수 있습니다. 이 과정은 총 N번 반복될 수 있습니다.

이 방법을 사용하면 N 연산(N 문자 제거 포함) 후에 문자열 "S"의 값을 빠르게 확인할 수 있습니다. 이 방법에는 정렬 단계가 있기 때문에 이 솔루션의 시간 복잡도는 O(N logN)이며 이는 대부분의 실제 응용 프로그램에 허용됩니다.

위 내용은 주어진 제약 조건 하에서 N개의 작업으로 문자열 'S'에서 N개의 문자를 제거한 후 값을 찾습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

PHP에서 int형을 문자열로 변환하는 방법에 대한 자세한 설명 PHP에서 int형을 문자열로 변환하는 방법에 대한 자세한 설명 Mar 26, 2024 am 11:45 AM

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

python_python 반복 문자열 튜토리얼에서 문자열을 반복하는 방법 python_python 반복 문자열 튜토리얼에서 문자열을 반복하는 방법 Apr 02, 2024 pm 03:58 PM

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

Golang 문자열이 지정된 문자로 끝나는지 확인하는 방법 Golang 문자열이 지정된 문자로 끝나는지 확인하는 방법 Mar 12, 2024 pm 04:48 PM

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

Golang에서 문자열이 특정 문자로 시작하는지 확인하는 방법은 무엇입니까? Golang에서 문자열이 특정 문자로 시작하는지 확인하는 방법은 무엇입니까? Mar 12, 2024 pm 09:42 PM

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

PHP에서 16진수를 문자열로 변환할 때 중국어 문자가 깨지는 문제를 해결하는 방법 PHP에서 16진수를 문자열로 변환할 때 중국어 문자가 깨지는 문제를 해결하는 방법 Mar 04, 2024 am 09:36 AM

PHP에서 16진수 문자열을 변환할 때 중국어 문자가 깨지는 문제를 해결하는 방법 PHP 프로그래밍에서 때때로 16진수 문자열을 일반 중국어 문자로 변환해야 하는 상황에 직면합니다. 그러나 이러한 변환 과정에서 때때로 중국어 문자가 깨져 나오는 문제에 직면하게 됩니다. 이 기사에서는 PHP에서 16진수를 문자열로 변환할 때 중국어 문자가 깨지는 문제를 해결하는 방법과 구체적인 코드 예제를 제공합니다. 16진수 변환을 위해서는 hex2bin() 함수를 사용하세요. PHP에 내장된 hex2bin() 함수는 1을 변환할 수 있습니다.

Apple 바로가기 명령 자동화를 삭제하는 방법 Apple 바로가기 명령 자동화를 삭제하는 방법 Feb 20, 2024 pm 10:36 PM

Apple 바로가기 자동화 삭제 방법 Apple의 새로운 iOS13 시스템이 출시되면서 사용자는 바로가기(Apple 바로가기)를 사용하여 다양한 휴대폰 작업을 사용자 정의하고 자동화할 수 있어 사용자의 휴대폰 경험이 크게 향상됩니다. 그러나 때로는 더 이상 필요하지 않은 일부 바로가기를 삭제해야 할 수도 있습니다. 그렇다면 Apple 단축키 명령 자동화를 삭제하는 방법은 무엇입니까? 방법 1: 바로가기 앱을 통해 삭제하세요. iPhone 또는 iPad에서 '바로가기' 앱을 엽니다. 하단 탐색 모음에서 선택

Go 언어에서 문자열을 가로채는 방법 Go 언어에서 문자열을 가로채는 방법 Mar 13, 2024 am 08:33 AM

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

PHP 문자열 조작: 공백을 효과적으로 제거하는 실용적인 방법 PHP 문자열 조작: 공백을 효과적으로 제거하는 실용적인 방법 Mar 24, 2024 am 11:45 AM

PHP 문자열 작업: 공백을 효과적으로 제거하는 실용적인 방법 PHP 개발 시 문자열에서 공백을 제거해야 하는 상황에 자주 직면하게 됩니다. 공백을 제거하면 문자열이 더 깔끔해지고 후속 데이터 처리 및 표시가 쉬워집니다. 이 기사에서는 공백을 제거하는 몇 가지 효과적이고 실용적인 방법을 소개하고 구체적인 코드 예제를 첨부합니다. 방법 1: PHP 내장 함수인 Trim()을 사용합니다. PHP 내장 함수인 Trim()을 사용하면 문자열 양쪽 끝의 공백(공백, 탭, 개행 등 포함)을 제거할 수 있어 매우 편리하고 쉽습니다. 사용.

See all articles