>  기사  >  백엔드 개발  >  문자열을 abcd..z가 하위 시퀀스로 포함된 형식으로 변환합니다.

문자열을 abcd..z가 하위 시퀀스로 포함된 형식으로 변환합니다.

WBOY
WBOY앞으로
2023-09-01 14:17:061126검색

문자열을 abcd..z가 하위 시퀀스로 포함된 형식으로 변환합니다.

문자열 변환(문자열 변환이라고도 함)은 전체 프로세스가 실행된 후 결과를 출력 배열에 저장하는 C++ 작업입니다. C++에는 C++ 환경의 디렉토리에 존재하는 "transform()"이라는 함수가 있는데, 이를 통해 문자열을 새로운 문자열로 변환할 수 있습니다.

변환 함수에는 두 가지 형태가 있습니다 −

  • 단항 연산

    • 연산은 입력 배열의 각 요소에 적용됩니다.

    • 작업이 완료된 후 결과는 출력 배열에 저장됩니다.

  • 이진 연산

  • 작업은 특정 배열의 각 요소에 적용됩니다.

  • 첫 번째 입력 요소와 두 번째 해당 입력 요소가 작업에 참여합니다.

  • 출력 데이터는 출력 배열에 저장됩니다.

하위 시퀀스 문자열은 입력 문자열에 다양한 작업(예: 삭제)을 수행하여 생성된 새로운 문자열입니다. 하위 시퀀스 문자열의 경우 나머지 문자에 영향을 주지 않고 작업이 수행됩니다.

문자열 변환의 경우 입력에는 길이 n+1의 연산 문자열이 포함됩니다. 원작 캐릭터는 a~z 시리즈에 속합니다. 여기서 인쇄 문자열의 길이는 출력 문자열인 n으로 처리됩니다.

이 글에서는 C++ 환경에서 abcd….z를 하위 시퀀스로 포함하도록 문자열을 변환하는 방법을 알아봅니다.

재귀 알고리즘은 후속 문자열을 생성합니다

재귀적 접근 방식을 사용하여 다음 문자열에 대해 가능한 알고리즘은 다음과 같습니다. 이는 특정 문자열이고 T는 작업을 완료하는 데 걸리는 시간입니다.

  • 1단계 - 발생 횟수를 셉니다.

  • 2단계 - i = 길이(들)이고 j = 길이(T)인 경우.

  • 3단계− 그런 다음 1로 돌아갑니다.

  • 4단계 - 끝.

  • 5단계 - i = 길이(S)인 경우.

  • 6단계 - 그런 다음 0을 반환합니다.

  • 7단계 - 끝.

  • 8단계 −

  • 9단계 - j

  • 10단계 − Count

  • 11단계 - 끝.

  • 12단계 - Count

  • 13단계 - 반품 횟수.

  • 14단계 - 끝.

후속 배열의 구문

으아악

여기서 후속 배열에 대한 기본 작업 구문을 만듭니다. 두 개의 시퀀스가 ​​있는 경우 출력을 얻으려면 다음 단계를 따라야 합니다.

팔로우 방법

  • 방법 1−C++를 사용하여 문자열 변환

  • C++

  • 을 사용하여 문자열에 대해 단항 연산을 수행하는 방법 2
  • C++를 사용하여 문자열에 대한 이진 연산을 수행하는 방법 3

  • C++

  • 을 사용하여 가능한 모든 후속 문자열을 인쇄하세요.
  • C++

  • 을 사용하여 문자열을 abcd….z 하위 시퀀스로 변환하는 방법 5

C++를 사용하여 문자열 변환

이 C++ 코드에서는 새 문자열을 만들고 입력 문자열에서 모든 모음을 제거합니다. 이 모음 대신 #이 추가됩니다.

예 1

으아악

출력

으아악

C++를 사용하여 문자열에 대한 단항 연산 수행

이 특정 코드에서는 입력 배열에서 단항 연산을 수행하는 방법을 보여줍니다. 이 함수는 단일 입력의 시작 및 끝 위치에 대한 포인터를 허용합니다. 그리고 출력 배열의 시작 부분에서 작동합니다.

예 2

의 중국어 번역은 다음과 같습니다.

예 2

으아악

출력

으아악

C++를 사용하여 문자열에 대한 이진 연산 수행

이 특정 코드에서는 입력 배열에서 이진 연산을 수행하는 방법을 보여줍니다. 변환() 함수는 시작점과 첫 번째 입력 배열 사이에 포인터를 추가합니다. 이진 연산은 항상 두 개의 입력 데이터 세트에서 작동한다는 점을 기억하세요.

예 3

의 중국어 번역은 다음과 같습니다.

예 3

으아악

출력

으아악

C++를 사용하여 모든 후속 문자열을 인쇄하세요

선택과 비선택의 개념을 적용하여 특정 배열의 모든 하위 시퀀스를 알아보세요. 이 과정에서 요소의 순서를 변경하지 않고 일부 문자가 제거될 수 있습니다. 여기서 이 과정의 시간복잡도는 O(2^n), 공간복잡도는 O(n)이다.

예 4

으아악

출력

으아악

abcd…z를 하위 시퀀스로 포함하도록 문자열을 변환

이것은 문자열을 abcd...z가 하위 시퀀스로 포함된 형식으로 변환하는 특정 프로세스입니다.

  • 초기화 문자.

  • 길이가 26보다 작으면 false를 반환합니다.

  • 0에서 s.size() - 1까지 루프를 반복합니다.

  • 문자가 z에 도달하면 루프에서 벗어나세요.

  • 현재 문자가 s보다 작거나 문자와 같은 경우.

  • 현재 문자의 증분을 1로 바꿉니다.

  • 문자가 z보다 작거나 같으면 false를 반환합니다.

  • 그렇지 않으면 true를 반환합니다.

在这个过程中,时间复杂度为O(n),辅助空间为O(1)。这里,n是特定字符串的长度。

Example 5

的中文翻译为:

示例5

#include <bits/stdc++.h>
using namespace std;
bool transformString(string& s) {
   char ch = 'a';
   if (s.size() < 26)
   return false;
   for (int i = 0; i < s.size(); i++) {
      if (int(ch) > int('z'))
      break;
      if (s[i] <= ch) {
         s[i] = ch;
         ch = char(int(ch) + 1);
      }
   }
   if (ch <= 'z')
   return false;
   return true;
}
int main() {
   string str = "aaaaaaaaaaaaaaaaaaaaaaaaaaa";
   if (transformString(str))
   cout << str << endl;
   else
   cout << "Not Possible" << endl;
   return 0;
}

输出

abcdefghijklmnopqrstuvwxyza

结论

在本文中,我们学习了使用C++环境进行字符串转换及其不同形式。通过遵循特定的算法和语法,我们检查和构建了一些不同的C++代码,并了解了如何转换字符串,使其具有abcd...z作为子序列。

위 내용은 문자열을 abcd..z가 하위 시퀀스로 포함된 형식으로 변환합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 tutorialspoint.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제